FreeBSD send mail with attachments from command line / shell prompt

I need to send a few reports everyday as a mail attachment. I’m using FreeBSD 6.2 server. How do I send mail from a command line or a shell script?

You can easily send email attachment using mutt mail client. It works from command line or a shell prompt. However mutt is not installed by default. You need to install mutt command. mutt command also works under UNIX and Linux like operating systems.

Install mutt under FreeBSD

Mutt is a small but very powerful text based program for reading electronic mail under unix operating systems, including support color terminals, MIME, and a threaded sorting mode. Use the pkg_add command to install binary software package distributions, enter:
# pkg_add -v -r mutt
Alternatively, you can use FreeBSD ports collections:
# cd /usr/ports/mail/mutt
# make install clean

FreeBsd command line mail attach with mutt

Send reports.tar.gz file to [email protected] as attachment, enter:
$ mutt -s "Reports" -a reports.tar.gz [email protected] < /dev/null
OR
$ mutt -s "Subject" -a reports.tar.gz [email protected] < /tmp/mail-message.txt
Where,

  • -a file : Attach a file to your message using MIME.
  • -s subject : Specify the subject of the message.

For multiple file attachments use -a for each file as follows:
$ mutt -s "Subject" -a file1.tar.gz -a file2.tar.gz [email protected] < /dev/null

For more information read mutt command man page:
$ man mutt

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.