为了账号安全,请及时绑定邮箱和手机立即绑定

Mailx发送html消息

Mailx发送html消息

翻翻过去那场雪 2019-12-05 15:59:50
我想用Mailx发送html消息。当我尝试以下命令时mailx -s "Subject"  user@gmail.com  < email.html 我得到纯文本形式的email.html的内容。在消息中,标题Content-Type设置为text / plain。-a选项尝试发送文件,因此我不知道如何修改标头。这个答案几乎可以用,它可以将Content-Type设置为text / html,但是不能替代默认的Content-Type text / plain。mailx -s "$(echo -e "This is the subject\nContent-Type: text/html")" user@gmail.com  < email.html给出这个结果:From: send@gmail.comTo: user@gmail.comSubject: This is the subjectContent-Type: text/htmlMessage-ID: <538d7b66.Xs0x9HsxnJKUFWuI%maikeul06@gmail.com>User-Agent: Heirloom mailx 12.4 7/29/08MIME-Version: 1.0 boundary="=_538d7b66.z5gaIQnlwb1f/AOkuuC+GwF1evCaG/XIHQMbMMxbY6satTjK"This is a multi-part message in MIME format.--=_538d7b66.z5gaIQnlwb1f/AOkuuC+GwF1evCaG/XIHQMbMMxbY6satTjKContent-Type: text/plain; charset=us-asciiContent-Transfer-Encoding: 7bitContent-Disposition: inline<html><body><p>Helo wolrd</p></body></html>PS:我也尝试过使用uuencode。当我尝试在网络邮件中显示消息时,我得到一个空白页...
查看完整描述

3 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

很简单,如果您的mailx命令支持-a(append header)选项:


$ mailx -a 'Content-Type: text/html' -s "my subject" user@gmail.com < email.html

如果不是,请尝试使用sendmail:


# create a header file

$ cat mailheader

To: user@gmail.com

Subject: my subject

Content-Type: text/html


# send

$ cat mailheader email.html | sendmail -t


查看完整回答
反对 回复 2019-12-05
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

几年来,我已经在Arch Linux(该-a标志用于附件)上成功使用了以下命令:


mailx -s "The Subject $( echo -e "\nContent-Type: text/html" user@gmail.com < email.html

这将Content-Type标头附加到主题标头,该标头在最近更新之前一直有效。现在,新行已从-s主题中过滤掉。据推测,这样做是为了提高安全性。


现在,我不再依赖于修改主题行,而是使用bash子外壳程序:


(

    echo -e "Content-Type: text/html\n"

    cat mail.html

 ) | mail -s "The Subject" -t user@gmail.com

而且由于我们实际上仅使用mailx的subject标志,所以似乎没有理由不sendmail按照@dogbane的建议切换到:


(

    echo "To: user@gmail.com"

    echo "Subject: The Subject"

    echo "Content-Type: text/html"

    echo

    cat mail.html

) | sendmail -t

bash子shell的使用避免了创建临时文件的麻烦。


查看完整回答
反对 回复 2019-12-05

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信