用shell 发封html格式的邮件不难
cat mail|sendmail -t
其中mail为
To:xx@111.com
Subject:aaa
content-type:text/html
<html>
<img src="aa"/>
</html>
用shell发包含附件的邮件也不难
(cat mail;uuencode a.jpg a.jpg)|sendmail -t
mail为
To:xx@111.com
Subject:aaa
但是如果想在邮件正文中嵌入附件图片:
(cat mail;uuencode a.jpg a.jpg)|sendmail -t
To:xx@111.com
Subject:aaa
content-type:text/html
<html>
<img src="aa"/>
</html>
结果会是sendmial将附件a.jpg编码后负载邮件正文,也就是俗称的乱码邮件。
那怎么办呢?
先来了解mime的概念,MIME的英文全称是"Multipurpose Internet Mail Extensions" 多功能Internet 邮件扩充服务,它是一种多用途网际邮件扩充协议
http://en.wikipedia.org/wiki/MIME
一封嵌入附件中的图片的邮件,就得符合mime协议。
按照rcf2046中所说 http://tools.ietf.org/html/rfc2046#section-5.1.1
当邮件中需要一个图片附件时的格式为:
引用
MIME-Version: 1.0
Content-type: multipart/mixed; boundary="123"
This is the preamble. It is to be ignored, though it
is a handy place for composition agents to include an
explanatory note to non-MIME conformant readers.
--123
Content-Type: image/jpeg; name=a.jpg
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=a.jpg;
a.jpg的base64数据
--123--
而一个内容为html的邮件格式为:
引用
MIME-Version: 1.0
Content-type: multipart/mixed; boundary="123"
This is the preamble. It is to be ignored, though it
is a handy place for composition agents to include an
explanatory note to non-MIME conformant readers.
--123
Content-Type: text/html; charset=gbk; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
html代码
--123--
组合一下,
引用
MIME-Version: 1.0
Content-type: multipart/mixed; boundary="123"
This is the preamble. It is to be ignored, though it
is a handy place for composition agents to include an
explanatory note to non-MIME conformant readers.
--123
Content-Type: text/html; charset=gbk; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
html代码
Content-Type: image/jpeg; name=a.jpg
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=a.jpg;
a.jpg的base64数据
--123--
邮件格式中的换行是协议需求,不能省去。
注意
1 获取某种图片的base64编码的方法为cat a.jpg |uuencode --base64 a.jpg>temp
2 得到a.jpg的编码后,要通过sed命令来去掉第一行和最后一行。因为第一行是begin base64 xxxx,最后一行是====
3 html代码里获取附件的方法是<img src="filename">
4 附件格式和content-type的对应关系查看http://www.webmaster-toolkit.com/mime-types.shtml
上面的片段再加上邮件头部,得到文件mail
然后使用cat mail|sendmail -t就可以发送包含图片的邮件了。
分享到:
相关推荐
linux shell 发送email 邮件教程,包括部分源码,大家可以下载来看看
主要介绍了linux shell发送Email邮件的方法,文中介绍的内容包括发送一封简单的邮件、邮件的格式、邮件标题使用中文以及邮件内容使用html等相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
MailUtil:邮件工具类,包括发送纯文本邮件,带(1个/多个)附件的邮件, 群发邮件 NumberUtil:数字操作工具 包括精准数字运算,数据格式化 PageUtil:分页工具类, POIUtil:poi工具类,excel导出 QrCodeUtil...
当你需要在 shell 脚本中创建邮件时,就需要用到命令行发送邮件的知识。Linux 中有很多命令可以实现发送邮件。本教程中包含了最流行的 5 个命令行邮件客户端,你可以选择其中一个。这 5 个命令分别是: mail / ...
使用Telnet测试发送一封邮件, 失败. 报错: 530 5.7.1 Client was not authenticated 经过搜索, 找到解决方案如下. 开启Exchange Management Shell, 输入如下命令: Set-ReceiveConnector "Default <Servername>" -...
它扫描一个或多个 git 存储库的目录,构建一个包含最近提交的列表,然后将其发送到一个或多个电子邮件地址。 它通过将提交的哈希存储在存储库的配置文件中来记住最后一次提交。 在 Ubuntu 14.10 和 OSX Mavericks ...
这是一个示例python脚本,该脚本检查gmail帐户中是否有具有特定规格(发件人,主题)的传入电子邮件,然后如果找到并发送了电子邮件,它将解析包含执行命令的电子邮件的摘要。 它在子进程中执行该命令,并在完成后...
如需更多信息,请发送电子邮件至 Ma_Sys.ma@web.de。 概述 该存储库包含与 MDVL 一起使用的各种 Ma_Sys.ma shell 脚本。 尽管可能存在一些协同作用(例如: ma_cryptvol可以选择使用deltamount ),但它们可以相互...
批量构建 此项目包含两部分内容: 出包脚本build目录 出补丁脚本build_ab目录 Jenkins出包脚本: unity支持以批处理的模式打包,需要c#测距好的接口,Shell可以直接调用...sendmail.sh打包生成后,给打包人发送邮件 u
自述 此存储库已拆分为以下存储库: 名称 提交电子邮件.rb说明 commit-email.rb 是一个实用程序,用于为推送到 git 存储库的提交发送提交邮件。 请参阅以下有关 git 的 URL。 git: /作者 口黑素头<kou> 小野寺凉...
CakePHP电子邮件队列插件该插件提供了一个界面,用于即时创建电子邮件并将其存储在队列中,稍后由离线工作人员使用cakephp shell命令进行处理。 它还包含预览排队的电子邮件,用于修改邮件模板,看结果非常方便的...
当系统达到指定的阈值限制时,它可以发送电子邮件警报。它可以监视 CPU 利用率、内存利用率、交换利用率、磁盘空间利用率等所有内容。 如果你只有很少的系统并且想要监视它们,那么编写一个小的 shell 脚本可以使你...
燕尾服 关于这个项目 什么是燕尾服? tuxans是著名的 shell 脚本的 Ansible 端口。 它主要是免费的 shell 脚本集合,用于为 Debian 和 ... 所有功能,包括数据库 GUI(现在作为单独的 shell 脚本, dbgui.sh )、
都会立即向该电子邮件地址发送电子邮件,其中包含您受感染的 url,并且我的 shell 也有任何。 PHP-Webshells-Collection 最想要的私有和公共 PHP Web Shell 可以在这里下载。 (仅限教育目的) 我不对你如何使用...
准确定义用户可以发送邮件“发件人:”的电子邮件地址 不用担心,脚本会在进行更改之前引导您完成所有更改,没有任何中断。 初始设置后,您应该能够安装其他软件并修改配置文件而不会引起问题。 这些脚本假定您具有...
您可以将电子邮件发送或转发到专用电子邮件地址。 然后,该电子邮件将自动发送到您的乔普林笔记。 附件(PDF,图像等)将自动包含在注释中。 此外,还会通过OCR从图像中自动扫描文本。 提取的文本将添加到注释的...
本压缩包包括多年积累的phpcms网站开发升级补丁,漏洞修复补丁。 其中包括教程文档: ...表单发送的邮件不显示表单内容 升级后台编辑器-ckeditor 等26个教程文档。 以及17个直接替换的漏洞补丁升级文件
和磁盘优先级运行给定的命令,保留日志文件,并在完成时显示视觉通知或发送电子邮件。 没有这个剧本我就活不下去了。 FilterTerminalOutputForLogFile.pl 优化通常用于更新当前控制台文本行上的进度指示器的回车技巧...
易用的通讯功能可让管理员发送邮件到任何一组会员 通过管理面板中配置多个付款方法 可创建模板内显示的即时投票 管理员组包括强大的档案管理,按姓名/性别/级别以及更多选择方式,激活或停用任何会员资料和编辑...
Ashampoo Antispy 还使您可以阻止应用程序访问您的帐户名,图片或日历条目,同时还可以使应用程序连接器,邮件或日历应用程序和 Windows Shell 体验无法访问您的联系人列表。 此外,您可以禁用 OneDrive 同步和手写...