sendmail 是否可以包含附件?我正在生成emailfile.eml
具有以下布局的以下文件
From: Company Name <[email protected]>
To: [email protected]
CC: [email protected]
Subject: Generated Output
Mime-Version: 1.0
This will be the body copy even though it's terrible
我正在使用以下方式发送这些电子邮件
# /usr/sbin/sendmail -t < emailfile.eml
这部分是工作文件,但我想在这封电子邮件中添加一个附件。
答案1
发布对我有用的解决方案,以防它可以帮助其他人,抱歉这么晚了。
我发现执行此操作的最可靠方法是将附件作为 base64 包含在 eml 文件本身中,下面是 eml 内容的示例。
注01:文件的base64来自使用附件作为参数在linux上运行base64命令(应该与任何base64工具一起使用)
注02:用于边界的字符串只是使用日期和随机大写字母的废话
文件名 : emlfile.eml
From: Sender <[email protected]>
To: [email protected]
CC: [email protected]
Disposition-Notification-To: [email protected]
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
答案2
有了mutt
你就可以简单地使用:
echo "This is the message body" | mutt -a "/path/to/file_to_attach" -s "subject of message" -- [email protected]
使用mail
命令:
mail -a /opt/emailfile.eml -s "Email File" [email protected] < /dev/null
-a
用于附件。
您可以使用SendEmail
:
sendemail -t [email protected] -m "Here is the file." -a attachmentFile