使用linux系统服务器发送邮件的功能在平时工作中也是经常需要用到的,在这里总结一下,供以后参考:
1、直接使用管道发送邮件
echo "hello,this is the content of mail.welcome to www.mzone.cc" | mail -s "Hello from mzone.cc by pipe" [email protected]
2、使用文本发送
mail -s "Hello from mzone.cc by file" [email protected] < mail.txt
3、如果希望修改发送邮件的人,那么:
mail -s "title" -r "[email protected]" [email protected]
4、如果想要发送附件,那么:
echo "" | mutt -s "邮件名称" [email protected] -c 抄送邮件列表 -a 附件路径
如果发送csv文件,很可能出现乱码,那么需要提前将文件转码,命令是:
/usr/bin/iconv -t gb2312 -f utf-8 -c 源文件名 > 目标文件名
- -t 目标编码
- -f 原来编码
5、从hive数据仓库中提取数据并使用邮件发送,bash脚本如下
#!/bin/sh source /usr/local/model/hive_config.sh cd /home/username/shell-script/ ############################################## #Description:测试邮件方式导出数据 #Author:username #CreateDate:2018-03-29 #生成csv文件并转码 hive -e "select * from dw.ods_fmis_refund limit 10" > sample_refund.csv; (printf "\xff\xfe" ; iconv -c -f utf-8 -t utf-16le sample_refund.csv) > 订单退款信息样本20180329.csv; ##压缩文件,超过30M邮件无法加载 zip 订单退款信息样本20180329.csv.zip 订单退款信息样本20180329.csv #发送邮件 sendEmails "[email protected]" "【数据提取】订单退款信息样本20180329" "数据请见附件" "订单退款信息样本20180329.csv.zip"
##发送短信
sendSmss "1342201****" "这是提醒短信! q(^o^)p"
#删除文件 rm sample_refund.csv; rm -fr 订单退款信息样本20180329*