2012-09-10 76 views
0
1. (cat mytest.html;uuencode "myfile.xls" "myfile.xls")|mail -s "$("This is Subject\nContent-Type: text/html")" [email protected] 

2. (uuencode "myfile.xls" "myfile.xls")|mail -s "$("This is Subject\nContent-Type: text/html")" [email protected] < mytest.html 

當我使用上述2種方法時,輸出格式爲html格式。但我沒有得到任何附件?(其中mytest.html包含html部分)unix中html格式郵件的附件

注意:我得到一些分散字符代替附件。

請讓我離開這裏

回答

1

uuencode是一個老標準二進制數據包含在郵件和新聞文章ASCII文本編碼,但它已經在普遍使用過時和不超過十年。可能沒有剩下的MUA仍然知道如何處理它,特別是在HTML郵件中。

此外,您指定Content-Type標題的mail命令-s參數的技巧是一個非常醜陋的黑客攻擊。我很驚訝它的作品!無論如何,它至少包含一個其他所需標題:MIME-Version: 1.0

您需要生成MIME多部分消息,其中一部分是您的HTML文檔,另一部分是您的附件(如果是二進制數據,可能是base64編碼)。

因爲MIME要求你選擇一個多邊界,格式化郵件正文分隔使用邊界的多個部分,生成每個多子部分的頭文件(包括各部分本身的Content-Type,可能Content-Transfer-EncodingContent-Disposition或他人),並且適當地對每個部分進行編碼,使用爲您構建MIME消息的工具包,而不是嘗試通過mail命令手動執行它,會更好。如果你在shell中工作,你可能會嘗試makemime,但這與手動操作幾乎一樣醜陋,所以我建議使用諸如Perl的MIME工具之類的東西。