diumenge, 9 de març de 2014

MTA per a enviar correu electrònic

Un MTA és una eina que permet que un ordinador enviï missatges de correu electrònic. Pot ser útil, per exemple, perquè un servidor ens enviï un missatge quan passen determinats esdeveniments, o que periòdicament, mitjançant cron, ens enviï informes d'estat del servidor, o moltíssimes altres coses.

Per a Debian i derivades, això es pot fer fàcilment amb exim4 i mutt; després d'instal·lar els dos programes, cal configurar exim4; per a fer servir un compte de gmail seria així:
$ sudo dpkg-reconfigure exim4-config

-s’envia a través d’smarthost i es rep via SMTP o fetchmail
-nom del correu del sistema: el de la màquina
-adreça IP on es vincula les connexions d’entrada de l’SMTP: 127.0.0.1 ; ::1
-d’altres destinacions per a les quals s’accepta correu: nom màquina
-ordinadors dels quals sou repetidor: en blanc
-Adreça IP o nom del servidor del «smarthost» de sortida: smtp.gmail.com::587
-Voleu amagar el nom de correu local al correu de sortida? No
-Voleu mantenir el nombre mínim de consultes de DNS possibles (marcatge sota demanda)? No
-Mètode de lliurament per al correu local: format mbox a /var/mail/
-Voleu dividir la configuració en fitxers petits? No

Després cal editar l'arxiu /etc/exim4/passwd.client afegint:

gmail-smtp.l.google.com:elteucompte@gmail.com:contrasenya
*.google.com:elteucompte@gmail.com:contrasenya
smtp.gmail.com:elteucompte@gmail.com:contrasenya

Reiniciem Exim:
$ sudo /etc/init.d/exim4 restart

I ja està.

Per a Manjaro, una solució que m'ha funcionat és msmtp; després d'instal·lar-lo, cal editar l'arxiu de configuració .msmtprc deixant-lo així*:

# Accounts will inherit settings from this section
defaults
auth on
tls on
tls_trust_file /usr/share/ca-certificates/mozilla/Thawte_Premium_Server_CA.crt

# A first gmail address
account gmail
host smtp.gmail.com
port 587
from elvostreusuari@gmail.com
user elvostreusuari@gmail.com
password la_vostra_contrasenya
tls_trust_file /etc/ssl/certs/ca-certificates.crt

# Set a default account
account default : gmail

Aquest fitxer ha de tenir permisos de lectura i escriptura només per al propietari:

$ chmod 600 ~/.msmtprc
* Cal que cada usuari que hagi d'enviar correu tingui aquest fitxer de configuració; no oblidem l'usuari root si n'ha d'enviar

Després cal afegir la línia

set sendmail=/usr/bin/msmtp

al fitxer
/etc/mail.rc

I un últim pas abans de provar que funciona: creem el fitxer, per exemple, prova.msmtp i hi posem el següent:

To: maildestí@domini.cat
From: mailorigen@domini.cat
Subject: prova

Manjaro rulez!

El desem i ja podem fer la prova:
$ cat prova.msmtp | msmtp -a default maildesti@domini.cat
Un cop feta la comprovació, ja podem configurar el cron perquè comenci a enviar correu com un boig :-)
amunt