我们使用 mutt 发送电子邮件。
mutt -s "Test" -e "Content-Type: text/html" [email protected] < message.html
我们以 HTML 格式发送电子邮件更新。我们希望以包含文本版本和 HTML 版本的多部分形式发送电子邮件。
- 当给出电子邮件主题以及电子邮件正文的 HTML 和文本版本时,我们如何在 Linux 中创建这样的多部分消息?
- 我们可以使用 mutt 从 Linux 提示符发送步骤 1 中创建的多部分电子邮件吗?
环境:RedHat Enterprise Linux 5,mutt
答案1
当给出电子邮件主题以及电子邮件正文的 HTML 和文本版本时,我们如何在 Linux 中创建这样的多部分消息?
multipart/alternative
创建如下类型的消息RFC 2046:
来自:示例公司 <[电子邮件保护]> 收件人:Joe 用户 <[电子邮件保护]> 日期:2011 年 5 月 21 日星期六 17:40:11 +0300 主题:多部分消息示例 MIME 版本:1.0 内容类型:multipart/alternative;边界=asdfghjkl --asdfghjkl 内容类型:text/plain;字符集=utf-8 大家好! --asdfghjkl 内容类型:text/html;字符集=utf-8 <!DOCTYPE html> <主体> <p>大家好!</p> </主体> --asdfghjkl--
我们可以使用 mutt 从 Linux 提示符发送步骤 1 中创建的多部分电子邮件吗?
如果您找到设置正确 Content-Type 标头的方法。(在您的示例中,您使用的是-e
,但 mutt 用于-e
不同的目的。甚至-e "my_hdr Content-Type: ..."
保留原始文本/纯文本标头不变。)
最好直接通过 发送生成的邮件sendmail
。您必须自己创建标题 - 请参阅示例;使用strftime("%a, %d %b %Y %T %z")
日期和一串随机字母数字字符作为边界。然后将准备好的消息(包括标题)通过管道传输到sendmail -i -t
:
sendmail -i -t < above-example.txt
(该-t
选项的意思是“从到:线”;您也可以使用)sendmail -i [email protected]
答案2
看一眼https://github.com/shivylp/mailprod。我开发了这个小型 Python 实用程序/库,因为使用命令行处理大型邮件似乎不是一个可靠的选择。使用 mailprodcli 就像说 一样简单mailprodcli template.xml --send
。甚至包含图像的示例 template.xml 也很简单:
<?xml version="1.0" encoding="UTF-8"?>
<mail>
<from>[email protected]</from>
<to>[email protected]</to>
<to>[email protected]</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>