我们正在从一台 Unix 服务器迁移到另一台。
旧服务器$ uname -a
Linux <redacted> 2.6.9-89.31.1.ELsmp #1 SMP Mon Oct 4 21:53:22 EDT 2010 i686 i686 i386 GNU/Linux
新服务器
$ uname -a
Linux <redacted> 2.6.32-504.30.3.el6.x86_64 #1 SMP Thu Jul 9 15:20:47 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
使用以下命令时,邮件在旧服务器中以 HTML 内容发送,但在新服务器上相同的命令仅发送纯电子邮件。
- 我在这里有什么选择?
- 我该怎么做才能让这项工作成功?
$ echo "<b>HTML Message <i>goes</i> here</b>" | mail -s "$(echo -e "This is the subject\nContent-Type: text/html")" [email protected] [email protected]
答案1
问题可能是您的新/bin/mail
程序将自己的 Mime 标头添加到邮件中,从而覆盖了Content-Type: text/html
您添加到标头末尾的 hack Subject:
。
一个简单的解决方案是绕过mail
并直接进入sendmail
(即使使用postfix
)。将您的命令替换为:
sendmail -t <<!
From: [email protected]
To: [email protected]
Subject: This is the subject
MIME-Version: 1.0
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
<b>HTML Message <i>goes</i> here</b>
!
如果您的 sendmail 不接受,-t
则用您要发送到的地址替换该选项,即[email protected]
。