Answers:
当给出电子邮件主题以及电子邮件正文的HTML和文本版本时,我们如何在Linux中创建这样的多部分消息?
创建RFC 2046中multipart/alternative
记录的消息类型:
来自:示例公司<news@example.com> 收件人:Joe用户<joe.u@example.net> 日期:2011年5月21日,星期六17:40:11 +0300 主题:多部分消息示例 MIME版本:1.0 内容类型:多部分/替代;边界= asdfghjkl --asdfghjkl 内容类型:文本/纯文本;字符集= utf-8 大家好! --asdfghjkl 内容类型:text / html;字符集= utf-8 <!DOCTYPE html> <身体> <p>大家好!</ p> </ body> --asdfghjkl--
我们可以使用mutt从Linux提示符下发送在步骤1中创建的多部分电子邮件吗?
如果找到设置正确的Content-Type标头的方法。(在您的示例中,您使用-e
,但是mutt -e
用于不同的目的。甚至-e "my_hdr Content-Type: ..."
保留原始的text / plain标头不变。)
最好直接通过发送生成的邮件sendmail
。您必须自己创建标题-请参见示例;strftime("%a, %d %b %Y %T %z")
用于Date,边界使用一串随机字母数字字符。然后将准备好的消息(包括标题)通过管道传递到sendmail -i -t
:
sendmail -i -t < above-example.txt
(该-t
选项的意思是“从收件人:行中获取收件人”;您也可以使用sendmail -i joe.u@example.net
)
看看https://github.com/shivylp/mailprod。我开发了这个小型Python实用程序/库,因为使用命令行处理大型邮件似乎不是一个可靠的选择。使用mailprodcli就像说一样简单mailprodcli template.xml --send
。甚至包含图像的示例template.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<mail>
<from>sender@source.com</from>
<to>recipient1@destination1.com</to>
<to>recipient2@destination2.com</to>
<body type="text/html">
<![CDATA[<html>
<b>Neat!</b><br><center><img src="cid:sample"></center>
</html>]]>
</body>
<body type="image" src="sample.png" id="sample" />
</mail>