Envoyer un e-mail depuis un serveur linux

example avec swaks, avec un fichier attaché

#!/bin/bash
echo $0 starting...
smtpserver=smtp.monprovider.fr
smtpport=587
to=phd@monprovider.fr
from=maintenance@monprovider.fr
subject=maintenance
user=maintenance@monprovider.fr
password=XXXXXXXX
body=`date`
monfic=/var/log/asterisk/messages
swaks -s "${smtpserver}" -p "${smtpport}" -t "$to" -f "$from" --header "Subject: $subject" -S \
      --protocol ESMTP -a -au "$user" -ap "$password" --body "$body" --attach "$monfic"

exemple avec Python depuis un NAS Synology, en utilisant un compte e-mail OVH

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText

from datetime import date
from datetime import datetime

today = date.today()
now = datetime.now()
print("Today's date:", today)
dt_string = now.strftime("%d/%m/%Y %H:%M:%S")
print("date and time =", dt_string) 

msg = MIMEMultipart()
msg['From'] = 'maintenance@monprovider.com'
msg['To'] = 'phd@monprovider.com'
msg['Subject'] = 'Synology Python e-mail ' + dt_string 
message = 'Test envoi e-mail OVH depuis synology !' 
msg.attach(MIMEText(message))
mailserver = smtplib.SMTP('ssl0.ovh.net', 587)
mailserver.ehlo()
mailserver.starttls()
mailserver.ehlo()
mailserver.login('maintenance@monprovider.com', 'XXXXXXXXXXX')
mailserver.sendmail('maintenance@monprovider.com', 'phd@monprovider.com' , msg.as_string())
mailserver.quit()

exemple avec Mutt depuis un Dialplan Asterisk

exten => s,n,system(echo | mutt -s 'test depuis dialplan' -f 'noreply@monprovider.com' destinataire@gmail.com)

Mutt avec un fichier attaché

exten => s,n,system(mkdir -p /var/spool/asterisk/emails/);
exten => s,n,set(TMPFNAME=/var/spool/asterisk/emails/alerte-${NUM_TEAM}-${APPELANT}-${STRFTIME(${EPOCH},,%Y-%m-%d_%Hh%Mm%Ss)}.txt);
exten => s,n,system(echo "Appel TEAM ${NUM_TEAM}\r\n" >> ${TMPFNAME})
exten => s,n,system(echo "Message: ${MESSAGE_SECURITE}\r\n" >> ${TMPFNAME})
exten => s,n,system(echo "APPELANT: ${APPELANT}\r\n" >> ${TMPFNAME})
exten => s,n,system(echo "APPELE: ${APPELE}\r\n" >> ${TMPFNAME})
exten => s,n,system(echo "HORODATE: ${STRFTIME(${EPOCH},,%Y-%m-%d_%Hh%Mm%Ss)}\r\n" >> ${TMPFNAME})
exten => s,n,system(mutt -s 'TEAM security' ${EMAIL_ADMINISTRATOR} < ${TMPFNAME})