La forma simple:usar uuencode (parte de sharutils paquete). Cualquier formato o texto del cuerpo no está disponible. Solo un correo electrónico con un archivo adjunto y un asunto personalizado.
uuencode /path/to/file file_name.ext | mail -s subject example@unixlinux.online
La forma compleja:usar sendmail y formato html:
v_mailpart="$(uuidgen)/$(hostname)"
echo "To: example@unixlinux.online
Subject: subject
Content-Type: multipart/mixed; boundary=\"$v_mailpart\"
MIME-Version: 1.0
This is a multi-part message in MIME format.
--$v_mailpart
Content-Type: text/html
Content-Disposition: inline
<html><body>Message text itself.</body></html>
--$v_mailpart
Content-Transfer-Encoding: base64
Content-Type: application/octet-stream; name=file_name.ext
Content-Disposition: attachment; filename=file_name.ext
`base64 /path/to/file`
--$v_mailpart--" | /usr/sbin/sendmail -t
en caso de que haya varios archivos adjuntos, se puede repetir la última parte.
Con mutt en lugar de mail simplemente llamarías
echo "body" | mutt -s "subject" -a attachment0 attachment1 [...] -- example@unixlinux.online
Aquí, attachmentN son la lista de archivos que desea adjuntar.