Linux自动下发送HTML格式并带附件的邮件
来源:互联网 发布:行者步行软件 编辑:程序博客网 时间:2024/06/01 09:36
引:
进入BEIDOU组的第一个项目就是实现一个统计报表自动发送邮件的应用,利用Shell脚本来做,期间回顾了awk,sed等文本过滤工具,crontab计划任务,还学会了在Linux下发送HTML邮件附带MS WORD/EXCEL/PPT格式附件的方法,在春节前圆满的完成了任务也算是可以踏踏实实过年了,活虽然小但毕竟可以算作一个小Milestone
遇到问题:
统计报表实现基本思想,按处理流程顺序
1) 利用scp下载远程线上机器的Log日志文件
2) 利用awk,sed,sort等Linux下命令过滤并且分析日志,生成基本的模板(template)文本。
3) 根据该模板(template)文本统计信息生成HTML格式的邮件正文。
4) 根据该模板(template)文本统计信息生成CVS、TXT、XLS格式的统计信息作为邮件附件。
5) 利用sendmail或者mutt命令发送邮件。
6) 利用crontab计划任务定时发送日报、周报、月报。
问题就出现在步骤5)。开始我尝试利用mutt来实现发送HTML格式正文邮件并且附带附件:
mutt -e "my_hdr content-type:text/html" -s "邮件标题" -a 附件.xls receiver@123.com < mail.html
用outlook做客户端接收邮件,发现附件丢失了,变成了正文里的乱码,如果不加-e "my_hdr content-type:text/html"参数,附件成功又不能显示HTML格式邮件,期间google了各种mutt相关问题官方FAQ都无从知晓为什么,现在看来既有可能是mutt版本没有升级到1.5的一个bug,但自己不是admin也没法装最新版本的mutt,最终选择放弃使用mutt。
解决方法:
编写以下两个函数,其中sendmail()函数配好参数,就可以直接调用了。这样就可以发送带多媒体附件的HTML格式正文的邮件了。在此感谢@lingbing同学的帮助。
要注意以下几点:
1) 多媒体文件对应的格式可以从下面的链接参考,用于替换参数$6的mimetype。http://www.w3schools.com/media/media_mimeref.asp
2) 如何判断自己的附件是不是纯文本的呢?Windows下如果可以用notepad记事本打开,或者Linux下可以用cat显示正常的都是可以用text/plain的MIME TYPE的,其他的一律需要用1)中提到的对应的编码格式,还要保证又base64编码再发送出去,邮件客户端或者接受者可以base64解码还原。这就是之所以Content-Transfer-Encoding: base64用base64并且要用base64 -e <文件名>编码的原因,base64命令可以Google下并下载。
附:曾经帮助启发过我的链接
http://www.linuxquestions.org/questions/linux-software-2/send-excel-attachment-using-sendmail-233688/
0 0
- Linux自动下发送HTML格式并带附件的邮件
- Linux自动发送HTML格式并带附件的邮件(转)
- shell sendmail发送带附件的html格式邮件
- 用Python实现在Linux环境发送带附件的邮件,支持文本/html格式
- windows下简单的vbscript自动发送邮件--带附件
- javamail 发送 带附件的 html邮件
- Sendmail 发送带附件的 html 邮件
- linux 下如何发送带附件的邮件
- 怎么在linux下发送带附件的邮件
- linux下使用mutt发送带附件的邮件
- linux 下 利用mutt 发送 带附件的邮件
- 命令行下发送带附件的邮件
- linux shell发送带附件的邮件
- linux命令行发送带附件的邮件
- Linux环境下sendmail发送html格式正文及csv格式附件邮件
- javamail实现向多人发送带附件的html格式邮件
- .NET C# 群发 HTML格式 带附件 中文发送者 密送 抄送 的邮件
- .NET C# 群发 HTML格式 带附件 中文发送者 密送 抄送 的邮件
- DllMain中不当操作导致死锁问题的分析——DllMain中要谨慎写代码(完结篇)
- JQuery运用toggle实现网页加载完成自动弹窗
- 嵌入式linux学习笔记4之字符设备驱动
- 2-三角形类2(get函数)
- Webservice接口
- Linux自动下发送HTML格式并带附件的邮件
- Pro Android学习笔记(四二):Fragment(7):切换效果
- .net中的正则表达式使用高级技巧
- 传亚马逊流媒体视频设备4月发货
- session过期,点击后退不跳转到登陆页面。
- POJ-2155 Matrix 二维树状数组
- [菜鸟每天来段CUDA_C]使用多个CUDA流提高程序执行效率
- 淘宝网卖家必须缴纳消保保证金才能发布宝贝的商品类目
- 练习,求满足条件的三位数