13

I can send email from my gmail account by ssmtp in Linux now. But how can I attach files to the email?

9

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? – deepsky Jul 26 '12 at 15:26
  • 3
    It's possible, but you'd have to generate all the MIME headers somehow. Why do you need to only use ssmtp? If ssmtp provides /usr/lib/sendmail or /usr/sbin/sendmail, any local mail program should be able to send via ssmtp. – Mikel Jul 26 '12 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! – Alan Curry Jul 27 '12 at 4:47
20
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
    How is this getting a negative vote? it solves the problem. – metrix Sep 16 '13 at 14:43
  • 2
    By the way, SSMTP is used by many people to send automated E-mails through Gmail: nixtutor.com/linux/send-mail-with-gmail-and-ssmtp – metrix Sep 16 '13 at 15:23
  • 1
    I know this answer came in over a year after the question was asked, but this is the answer to the question. Works great, thanks. – RTF Aug 1 '14 at 19:18
  • 1
    4 years later, July 2017 - This is the answer I was looking for. Thank you, @metrix! – SDsolar Jul 21 '17 at 5:09
  • missing uuencode command – Pavel Niedoba Aug 28 '17 at 15:08
1
$ 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.

  • I don't think this answers the original question. – slm Sep 2 '13 at 3:10
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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.