如何在 Linux 中使用 ssmtp 发送附件?

dee*_*sky 16 email mail-user-agent ssmtp

我现在可以在 Linux 中通过 ssmtp 从我的 gmail 帐户发送电子邮件。但是如何将文件附加到电子邮件中?

met*_*rix 25

echo -e "to: receiver@domain.tld\nsubject: subject\n"| (cat - && uuencode /path/to/attachment attachment.name) | ssmtp receiver@gmail.com
Run Code Online (Sandbox Code Playgroud)

此解决方案不依赖于 mutt。

  • 这怎么会得到反对票?它解决了问题。 (4认同)
  • 顺便说一句,许多人使用 SSMTP 通过 Gmail 发送自动电子邮件:http://www.nixtutor.com/linux/send-mail-with-gmail-and-ssmtp/ (3认同)
  • 我知道这个答案是在提出问题后一年多才出现的,但这就是问题的答案。效果很好,谢谢。 (2认同)
  • 4 年后,2017 年 7 月 - 这是我一直在寻找的答案。谢谢你,@metrix! (2认同)

Mik*_*kel 9

要发送附件,您需要使用MIME对消息进行编码。

你可以用Mutt

mutt -s SUBJECT -a ATTACHMENT_FILE_1 ATTACHMENT_FILE_2 -- EMAIL_ADDRESS < MESSAGE_FILE
Run Code Online (Sandbox Code Playgroud)

mpack

mpack -s SUBJECT -D MESSAGE_FILE ATTACHMENT_FILE EMAIL_ADDRESS
Run Code Online (Sandbox Code Playgroud)

也可以看看:

  • 这是可能的,但您必须以某种方式生成所有 MIME 标头。为什么你只需要使用`ssmtp`?如果`ssmtp` 提供`/usr/lib/sendmail` 或`/usr/sbin/sendmail`,则任何本地邮件程序都应该能够通过`ssmtp` 发送。 (3认同)
  • @deepsky ssmtp 不是用户界面。它是一个 MTA(邮件传输代理),它是旨在通过 MUA(邮件用户代理,也称为“邮件阅读器”)访问的基础设施。在没有 MUA 的情况下,您能够自己处理 ssmtp 令人印象深刻,但这不是一种合理的做事方法。不过,这是您学到的一项很好的网络调试技能! (3认同)