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


14

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

Answers:


9

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

您可以使用Mutt

mutt -s SUBJECT -a ATTACHMENT_FILE_1 ATTACHMENT_FILE_2 -- EMAIL_ADDRESS < MESSAGE_FILE

mpack

mpack -s SUBJECT -D MESSAGE_FILE ATTACHMENT_FILE EMAIL_ADDRESS

也可以看看:


谢谢。就是说不能仅通过ssmtp发送附件吗?
deepsky

3
有可能,但是您必须以某种方式生成所有MIME标头。为什么只需要使用ssmtp?如果ssmtp提供/usr/lib/sendmail/usr/sbin/sendmail,则任何本地邮件程序都应能够通过发送ssmtp
Mikel 2012年

3
@deepsky ssmtp不是用户界面。它是MTA(邮件传输代理),是一种可以通过MUA(邮件用户代理,也称为“邮件阅读器”)进行访问的基础结构。无需MUA,您就可以自己对ssmtp进行处理,这令人印象深刻,但这不是一种合理的处理方法。不过,这是您学习的一项出色的网络调试技能!
艾伦·库里

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

此解决方案不依赖于mutt。


4
这如何获得否决票?它解决了这个问题。
metrix 2013年

3
顺便说一下,许多人使用SSMTP
metrix 2013年

2
我知道这个问题是在问了问题一年多之后才出现的,但这就是问题的答案。很好,谢谢。
RTF 2014年

2
4年后的2017年7月-这是我一直在寻找的答案。谢谢@metrix!
SDsolar '17

缺少uuencode命令
Pavel Niedoba,2017年

1
$ echo -e "to: receiver@domain.tld\nsubject: test\n"| (cat - && uuencode /path/to/file file.name) | ssmtp sender@gmail.com

前提是已配置SSMTP,并且您已验证不带附件的邮件已到达目的地,并且不依赖于Mutt。


我认为这不能回答原始问题。
slm

0
 $ sudo apt-get install uudeview
 $ echo -e "From: myaddress@mydomain.com\nTo: youraddress@yourdomain.com\nSubject: mySubject\n\nBody-Text"|uuenview -a -bo MyAttachment|sendmail -t
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.