使用 postfix 2.6.6 和 centOS 6.4 的 mailx 傳送 HTML

使用 postfix 2.6.6 和 centOS 6.4 的 mailx 傳送 HTML

我正在嘗試從 CentOS 伺服器向用戶發送 HTML 電子郵件。從長遠來看,我將建立一個 COBOL 程序,該程序運行命令以向用戶發送報告。

以下是一些細節。

  • CentOS 6.4
  • 月活躍用戶:郵件
  • MTA:後綴 2.6.6
  • Postfix 透過交換伺服器運作中繼。

至於我嘗試運行的命令。我今天看到最多的就是下面這個。

$ mailx -a 'Content-Type: text/html' -s "Command Line Test" [email protected] < ./bodytext.html

運行顯示的命令後,我收到一條錯誤訊息「Content-Type:text/html:沒有這樣的檔案或目錄」。我很確定在某個更新之後,他們停止允許 -a 作為內容類型指定的標誌。

我還嘗試將“Content-Type: text/html”添加到實際的 bodytext.html 檔案中作為第一行。我有點不知道如何發送 HTML 電子郵件。我發現的一些消息來源說 mailx 和 postfix 無法正確發送 HTML 電子郵件。希望情況並非如此,但如果確實如此,我想知道您對其他 MAU 和 MTA 技術有何看法?

答案1

由於您似乎可以完全控制生成的文本文件,因此最簡單且可能最便攜的方法是/usr/sbin/sendmail直接參與。

/usr/sbin/sendmail -t < complete-mail.txt

這需要您自己添加所有重要的標頭(FromToSubjectContent-Type)。該文件應如下所示:

From: Company <[email protected]>
To: Customer <[email protected]>
Subject: You are awesome
Content-Type: text/html

<html>…</html>

Postfix 將添加缺少但必需的標頭,例如Date.

答案2

您甚至閱讀過手冊嗎mailx,尤其是-a選項?

-a file 將給定文件附加到訊息中。

吉爾斯回答,因為 CentOS 使用的是這個版本mailx

與傳家寶信箱,沒有方便的方法。插入任意標頭的一種可能性是設定 editheaders=1 並使用外部編輯器(可以是腳本)。

## Prepare a temporary script that will serve as an editor.
## This script will be passed to ed.
temp_script=$(mktemp)
cat <<'EOF' >>"$temp_script"
1a
Content-Type: text/html
.
$r test.html
w
q
EOF
## Call mailx, and tell it to invoke the editor script
EDITOR="ed -s $temp_script" heirloom-mailx -S editheaders=1 -s "Subject" to@address <<EOF
~e
.
EOF
rm -f "$temp_script"

Postfix當然可以寄HTML郵件。

相關內容