使用带有 postfix 2.6.6 和 centOS 6.4 的 mailx 发送 HTML

And*_*dyV 5 email centos postfix mailx

我正在尝试从我们的 CentOS 服务器向用户发送 HTML 电子邮件。从长远来看,我将构建一个 COBOL 程序,该程序运行命令将报告发送给用户。

这里有一些细节。

  • CentOS 6.4
  • MAU : Mailx
  • MTA:后缀 2.6.6
  • Postfix 正在通过交换服务器运行中继。

至于我试过运行什么命令。我今天看到的最多的是以下。

$ mailx -a 'Content-Type: text/html' -s "Command Line Test" andyv@example.com < ./bodytext.html
Run Code Online (Sandbox Code Playgroud)

运行显示的命令后,我收到一条错误消息,提示“内容类型:文本/html:没有这样的文件或目录”。我很确定在某个更新之后,他们不再允许 -a 作为内容类型指定的标志。

我还尝试将“Content-Type: text/html”作为第一行添加到实际的 bodytext.html 文件中。我对我可以做些什么来发送 HTML 电子邮件有点不知所措。我发现的一些消息来源说 mailx 和 postfix 无法正确发送 HTML 电子邮件。希望事实并非如此,但如果确实如此,我想知道您对其他 MAU 和 MTA 技术有何看法?

tar*_*leb 1

由于您似乎可以完全控制生成的文本文件,因此最简单且可能最便携的方法是/usr/sbin/sendmail直接参与。

\n\n
/usr/sbin/sendmail -t < complete-mail.txt\n
Run Code Online (Sandbox Code Playgroud)\n\n

这需要您自己添加所有重要的标头(FromToSubjectContent-Type)。该文件应如下所示:

\n\n
From: Company <noreply@company.example>\nTo: Customer <name@customer.example>\nSubject: You are awesome\nContent-Type: text/html\n\n<html>\xe2\x80\xa6</html>\n
Run Code Online (Sandbox Code Playgroud)\n\n

Postfix 将添加缺失但必需的标头,例如Date.

\n