I can send email from my gmail account by ssmtp in Linux now. But how can I attach files to the email?
5 Answers
echo -e "to: receiver@domain.tld\nsubject: subject\n"| (cat - && uuencode /path/to/attachment attachment.name) | ssmtp receiver@gmail.com
This solution does not depend on mutt.
-
4
-
3By the way, SSMTP is used by many people to send automated E-mails through Gmail: nixtutor.com/linux/send-mail-with-gmail-and-ssmtp– metrixSep 16, 2013 at 15:23
-
2I know this answer came in over a year after the question was asked, but this is the answer to the question. Works great, thanks.– RTFAug 1, 2014 at 19:18
-
24 years later, July 2017 - This is the answer I was looking for. Thank you, @metrix!– SDsolarJul 21, 2017 at 5:09
-
To send an attachment, you need to encode the message using MIME.
You could use Mutt
mutt -s SUBJECT -a ATTACHMENT_FILE_1 ATTACHMENT_FILE_2 -- EMAIL_ADDRESS < MESSAGE_FILE
or mpack
mpack -s SUBJECT -D MESSAGE_FILE ATTACHMENT_FILE EMAIL_ADDRESS
See also:
-
Thanks. So is that to say that it is NOT possible to send an attachment by ssmtp alone?– deepskyJul 26, 2012 at 15:26
-
3It's possible, but you'd have to generate all the MIME headers somehow. Why do you need to only use
ssmtp
? Ifssmtp
provides/usr/lib/sendmail
or/usr/sbin/sendmail
, any local mail program should be able to send viassmtp
.– MikelJul 26, 2012 at 15:34 -
3@deepsky ssmtp is not a user interface. It's an MTA (mail transport agent), which is infrastructure meant to be accessed via an MUA (mail user agent, also known as a "mailreader"). It's sort of impressive that you were able to wrangle ssmtp by yourself without an MUA, but it's not a reasonable method of doing things. It's a good network-debugging skill you've learned though! Jul 27, 2012 at 4:47
$ echo -e "to: receiver@domain.tld\nsubject: test\n"| (cat - && uuencode /path/to/file file.name) | ssmtp sender@gmail.com
Provided that SSMTP is configured, and you've verified that messages without attachments are reaching their destination and does not depend on mutt.
$ 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
another alternative to uuencode is to use base64 commend instead ->
cat msg_source.txt | (cat - base64 && attachment.bin) | ssmtp -vvvv email@domain.com
where msg_source.txt contains header tags, like To:, From:, Subject:, Content-Type:, etc