Centos
sendmail 附件為空
我正在嘗試在我的 sendmail eml 文件中包含一個附件。目前的eml文件(order.eml)有以下內容
From: Sender <sender@email.com> To: client@email.co.za Subject: Report Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="B835649000072104Jul07" --B835649000072104Jul07 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Content-Disposition: inline Body Copy --B835649000072104Jul07 Content-Type: application/pdf Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="por5151.pdf" base64 por5151.pdf --B835649000072104Jul07--
order.eml 和 por5151.pdf 文件都在同一個目錄中,我嘗試發送它
# /usr/sbin/sendmail -t < order.eml
當電子郵件到達時,我可以在附件中看到 por5151.pdf,但它是空白的(0 字節)。我不知道這是為什麼,我正在努力解決它
您需要做的是將文件包含在
Content-Disposition: attachment; filename="por5151.pdf"
生成
.eml
文件時的行。您可以使用該base64
實用程序執行此操作:base64 por5151.pdf
--B835649000072104Jul07--
確保在其後面插入閉合邊界 ( )。
sendmail
不會解釋您交給它的文件,因此不會神奇地插入
我創建了下面的腳本來附加一個 CSV 文件。它錯誤地截斷了 CSV 的列名,並且還有一個通過電子郵件獲取的文件,即“ATT0001.txt”。
( echo "From:"$1; echo "To:"$2; echo "Subject:"$3; echo "MIME-Version: 1.0"; echo "Content-Type:multipart/mixed; boundary=\"B835649000072104Jul07\""; echo "--B835649000072104Jul07"; echo "Content-Type: text/html; charset=\"UTF-8\""; echo "Content-Transfer-Encoding: 7bit"; echo "Content-Disposition: inline"; echo ""; echo "$4"; echo "--B835649000072104Jul07"; echo "Content-Type: text/csv"; echo "Content-Transfer-Encoding: base64"; echo "Content-Disposition: attachment; filename=\"$5\""; base64 "$5" echo "--B835649000072104Jul07"; ) | sendmail -t