sendmail 可以包含附件吗?

sendmail 可以包含附件吗?

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

相关内容