博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux mail邮件附件定时发送
阅读量:6674 次
发布时间:2019-06-25

本文共 1995 字,大约阅读时间需要 6 分钟。

hot3.png

一:原理

1、shell实现mysql数据导出

2、导出的数据文件转码(utf8-tgb2312)

3、邮件定时发送

二:环境搭建postfix

rpm -qa |grep postfix  确认postfix是否安装

安装postfix

yum -y install postfix 

更改默认MTA为Postfix:

/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix
alternatives --display mta

vim /etc/postfix/main.cf     直接在尾部添加即可

myhostname = ****   ##主机名字

mydomain = ***.com        ##mstp邮箱服务器域名,下面的随意,存在就行
#mydomain = qq.com
myorigin = $mydomain      
inet_interfaces = all
mydestination = ***@$mydomain,***@$mydomain,***@$mydomain
#mydestination = test@$mydomain
mynetworks = 192.168.100.10/24,127.0.0.0/8,172.16.0.0/24
relay_domains =
home_mailbox = Maildir/

启动服务

systemctl  start postfix.service    (centos7.1)

三:shell获取数据及发送邮件

#!/bin/bash

current_dir="/data/scripts/cipm_import"

today=`date +"%Y%m%d"`
host_IP="*******"
host_user="*******"
host_password="*********"
mysql_comm="/bin/mysql"
msyql_db="*****"
mail_theme="业务数据定期导出"
mail_content="***对应***数据
***对应***数据
***对应协议数据
***对应支付通道数据
***对应供应商数据"
mail_user1="******"
mail_user2="*******"
mail_user3="********"

##数据导出以及文件转码成excel能识别的编码

report_export () {
     cd $current_dir

     while read line 

     do
          report_name=`echo "$line"|cut -d" " -f2`
          case $report_name in
          a.ediname)
               report_name=edi
               ;;
          a.elfname)
               report_name=robot
               ;;
          a.agreementcode)
               report_name=protocol
               ;;
          b.paychannelname)
               report_name=pay
               ;;
          *)
               report_name=cipm
               ;;
          esac

          $mysql_comm -h $host_IP -u$host_user -p$host_password -e "use $msyql_db;$line"  > "$report_name""$today".xls      ###sql从文件按行输入

          iconv -futf8 -tgb2312 -o "$report_name""$today"_back.xls "$report_name""$today".xls
     done < $current_dir/sqlyuju      ###导出的数据文件转码
 }

mail_send () {

     cd $current_dir
     tar -zcf data"$today".tar.gz *back*
     mail_fujian=data"$today".tar.gz
     echo “$mail_content” |mail -s "$mail_theme" -a $mail_fujian -c $mail_user1 $mail_user2 $mail_user3    ###邮件发送  -a  发送的附件   -c 第一个为抄送人   后面接的都是邮件接收人
     rm -f *.xls $mail_fujian       
}

report_export

mail_send

四:定时执行

crontab -e

05 12 * * 1 /bin/bash   /data/scripts/cipm_import/data_import.sh  > /dev/null 2>&1 &

 

 

转载于:https://my.oschina.net/u/2343310/blog/735533

你可能感兴趣的文章
Directx11教程(50) 输出depth/stencil buffer的内容
查看>>
sleep()和wait()有什么区别
查看>>
笔者亲自测试通过的修改SharePoint 2013的Topology脚本记录
查看>>
搜索引擎首页
查看>>
YARN - Yet Another Resource Negotiator
查看>>
[ASP.NET MVC 小牛之路]03 - Razor语法(转)
查看>>
linux系统下make & make install
查看>>
053医疗项目-模块五:权限设置-将用户操作权限写入Session
查看>>
DocX开源WORD操作组件的学习系列一
查看>>
svn导出某两个版本之间变化的文件
查看>>
box2dflash flash物理引擎
查看>>
[原创]FineUI秘密花园(二十六) — 选项卡控件概述
查看>>
python 守护线程和loggin模块
查看>>
Android中检测软键盘的弹出和关闭
查看>>
大数记录之,大数乘整型数nyoj832
查看>>
使用Unity3D自带动画系统制作下雨效果
查看>>
创建、显示和删除保存的用户名和密码(cmdkey)
查看>>
连载《一个程序猿的生命周期》-4.母亲的病魔
查看>>
关于大型网站技术演进的思考(二十一)--网站静态化处理—web前端优化—下【终篇】(13)...
查看>>
02 svn 文件提交与目录结构
查看>>