2011-07-24 71 views
22

我一直在使用mutt從另一個應用程序內發送電子郵件& 它工作正常。我必須發送HTML文件,目前我必須發送 作爲附件。所以我用發送Html頁面作爲電子郵件使用「mutt」

mutt -s "hi" -a attach.html [email protected] < /dev/null 

但是,如果我嘗試將HTML文件發送的身體然後跟隨

mutt -e content_type=text/html Email address -s "subject" < test.html 

而不是HTML文件中我得到的HTML文件的源文本。

有什麼辦法可以使郵件的正文爲html 而不是純文本?

回答

41

當我嘗試你的命令時,mutt告訴我content_type=text/html是一個未知的命令。所以你必須使用「set」命令來完成這項工作:

mutt -e "set content_type=text/html" Email address -s "subject" < test.html 

在我的測試中工作。

+0

它返回:錯誤在命令行 「CONTENT_TYPE」:未知的命令和我得到的源代碼insted的html正文的? – eldorado0o

+1

@eldorado你使用的是什麼版本的mutt?顯然「content_type」變量在1.4.x或之前的版本中不可用。 – vstm

+0

恩,1.5。21是最近的一個(也是我用來測試命令的那個)。但根據[mutt網頁](http://www.mutt.org/),它仍然是一個開發版本。如果你可以忍受它沒關係,否則有其他方式發送HTML郵件。 – vstm

0

如果你看一個HTML電子郵件的來源,你會以最低的像看到:

Subject: test html mail 
From: [email protected] 
To: [email protected] 
Content-Type: multipart/alternative; boundary=bcaec520ea5d6918e204a8cea3b4 

--bcaec520ea5d6918e204a8cea3b4 
Content-Type: text/plain; charset=ISO-8859-1 

*hi!* 

--bcaec520ea5d6918e204a8cea3b4 
Content-Type: text/html; charset=ISO-8859-1 
Content-Transfer-Encoding: quoted-printable 

<p><b>hi!</b></p> 

--bcaec520ea5d6918e204a8cea3b4-- 

所以,你必須創建一個「內容類型:」頭,並添加邊界在純文本版本之上,以及HTML版本之上和之下。

考慮到手工製作所需的數量,您最好將消息傳遞給sendmail而不是mutt。

+0

Mutt不允許插入Content-Type標頭。唯一的方法是通過命令行。 – emisilva

5

我的mutt版本是1.4.x,我也不能設置content_type = text/html,它被報告爲未知變量。

我檢查了mutt doc,content_type僅支持1.5.x版本,如最新版本1.5.21。

很顯然,html郵件在版本1.4.x中不被支持。

6

我用mutt 1.6d試過,那個選項-e「set content_type = text/html」不適用於我。我周圍搜索發現下面的命令行後對我的作品:

mutt -e "my_hdr Content-Type: text/html" [email protected] -s "subject" < mytest.html 

參考這裏

LinuxQuestions

+1

這個,在mutt 1.4上會發送兩個頭文件content-type,一個用於純文本,另一個用於html。客戶端顯示的內容到目前爲止...... Gmail會顯示純文本,所以要小心 – higuita

+0

只是爲了記錄,這也適用於版本1.5.20。 – gacanepa

1

我用Mutt的1.5.23與嵌入式圖像發送HTML電子郵件,這對我的作品。 mutt -e "set content_type=text/html" Email -s "subject" -a pic.png < test.html

文件的test.html:

<html> 
 

 
<head></head> 
 

 
<body> 
 
    <img src="cid:pic.png" " /> 
 
</body> 
 
</html>