使用linux系统服务器发送邮件的功能在平时工作中也是经常需要用到的,在这里总结一下,供以后参考:
1、直接使用管道发送邮件
echo "hello,this is the content of mail.welcome to www.mzone.cc" | mail -s "Hello from mzone.cc by pipe" admin@qunar.com
2、使用文本发送
mail -s "Hello from mzone.cc by file" admin@qunar.com < mail.txt
3、如果希望修改发送邮件的人,那么:
mail -s "title" -r "from@qunar.com" to@qunar.com
4、如果想要发送附件,那么:
echo "" | mutt -s "邮件名称" qiu.li@qunar.com -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 "username@company.com" "【数据提取】订单退款信息样本20180329" "数据请见附件" "订单退款信息样本20180329.csv.zip"
##发送短信
sendSmss "1342201****" "这是提醒短信! q(^o^)p"
#删除文件 rm sample_refund.csv; rm -fr 订单退款信息样本20180329*