文档章节

Linux mail邮件附件定时发送

 空灵飞渡
发布于 2016/08/20 17:21
字数 392
阅读 98
收藏 2

一:原理

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 &

 

 

© 著作权归作者所有

共有 人打赏支持
粉丝 3
博文 180
码字总数 82224
作品 0
广州
私信 提问
Linux下使用mail命令发送邮件

因为需要经常备份网站的数据,所以了解并学习了下linux下如何通过shell来发送邮件,这里以CentOS为例,使用mail命令来进行外部邮件的发送。mail命令的语法如下: 使用mail命令发送邮件,有如...

老大做IT
2012/09/25
0
0
小柒2012/spring-boot-mail

spring-boot-mail 邮件发送服务,文本,附件,模板,队列,多线程,定时任务实现多种功能!!! SpringBoot开发案例之整合mail发送服务 SpringBoot开发案例之整合mail队列篇 开发环境 JDK1.7...

小柒2012
2017/08/02
0
0
linux - 使用mail命令快速发送邮件

  前言   Linux系统中mail命令可以直接发送邮件。      CentOS/RHEL安装   yum -y install mailx   mail命令参数   -s :指定邮件的主题;   -c :添加邮件抄送人,多个人时...

linux运维菜
2018/08/22
0
0
linux shell 发送email 附件

方法一:发送单个附件(正文乱码) mutt -s "mail subject" -a output_email.html -- tomail@163.com < output_email.html 或者 cat output_email.html | mutt -s "mail subject" -a output......

晨曦之光
2012/03/02
398
0
linux shell 监控脚本 及 邮件发送

1.Linux脚本 起因: 公司部署的web服务经常莫名其妙的挂掉。而且 还找不到具体的问题,使用supervisor守护的gunicorn,但是在多次尝试重启失败之后, 就再也不启动了。然后 只能想另外的办法...

明天以后
2016/05/12
481
0

没有更多内容

加载失败,请刷新页面

加载更多

C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
18分钟前
0
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
0
0
ibmcom/db2express-c_docker官方使用文档

(DEPRECIATED) Please check DB2 Developer-C Edition for the replacement. What is IBM DB2 Express-C ? ``IBM DB2 Express-C``` is the no-charge community edition of DB2 server, a si......

BG2KNT
昨天
0
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
3
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部