Centos

發送郵件附件

  • October 31, 2021

我想知道是否可以在 sendmail 中包含附件。我正在使用以下佈局生成以下 emailfile.eml 文件

From: Company Name <example@nowhere.com>
To: recipient@madeup.com
CC: someoneelse@place.com
Subject: Generated Output

Mime-Version: 1.0

This will be the body copy even though it's terrible

我正在使用發送這些電子郵件

# /usr/sbin/sendmail -t < emailfile.eml

這部分是工作文件,但我想在這封電子郵件中包含一個附件,但我還沒有弄清楚怎麼做

發布對我有用的解決方案,以防它可以幫助其他人,抱歉,來晚了。

我發現這樣做的最可靠方法是將附件作為 base64 包含在 eml 文件本身中,下面是 eml 內容的範例。

注意01:文件的base64來自使用附件作為參數在linux上執行base64命令(應該與任何base64工具一起使用)

注意02:用於邊界的字元串只是胡說八道,使用日期和隨機大寫字母

文件名:emlfile.eml

From: Sender <sender@email.co.za>
To: recipient01@email.co.za
CC: recipient02@email.co.za
Disposition-Notification-To: recipient01@email.co.za
Subject: Generic Subject
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="19032019ABCDE"

--19032019ABCDE
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Generic Body Copy

--19032019ABCDE
Content-Type: application;
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="MyPdfAttachment.pdf"

*base64 string goes here (no asterix)*

--19032019ABCDE--

然後可以使用命令發送 filename.eml 文件,它將包含附件

# /usr/sbin/sendmail -t < filename.eml

mutt你可以簡單地使用:

echo "This is the message body" | mutt -a "/path/to/file_to_attach" -s "subject of message" -- recipient@domain.com

使用mail命令:

mail -a /opt/emailfile.eml -s "Email File" user@example.com < /dev/null

-a用於附件。

您可以使用SendEmail

sendemail -t to@example.com -m "Here is the file." -a attachmentFile

引用自:https://unix.stackexchange.com/questions/223636