Inviare email da shell con Gmail

Scritto da dema il giorno 10 Luglio 2014

Pillolina da lame sysadmin.

Per inviare una mail con shell con mailutils, openssl e Gmail:

Creare la directory in home che conterrĂ  i certificati:

$ mkdir ~/.certs 
$ certutil -N -d ~/.certs

Importare il certificato di gmail:

$ echo -n | openssl s_client -connect smtp.gmail.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/gmail.crt
$ certutil -A -n "Google Internet Authority" -t "C,," -d ~/.certs -i ~/.certs/gmail.crt

Editare il file /etc/mail.rc ed aggiungere il profilo gmail da invocare con il comando mailx -A.

Inserire alla fine del file:

account gmail { 
set smtp-use-starttls
set ssl-verify=ignore
set smtp-auth=login
set smtp=smtp://smtp.gmail.com:587
set from="username@gmail.com(Mighty Me)"
set smtp-auth-user=me@gmail.com
set smtp-auth-password=myawesomepassword
set ssl-verify=ignore
set nss-config-dir=/home/myhome/.certs
}

Inviare email da script o shell come di consueto, avendo cura di indicare come flag del comando mail -A gmail. Quindi la riga di comando dovrebbe risultare come segue:

$ cat test.txt | mailx -A gmail -s "report su test" someone@somemail.com
credits coderwall