Nous allons voir comment configurer Exim4 pour envoyer des emails système avec Gmail. Cela permettrait que vos emails envoyés avec vos CRON soient correctement routés et n’atterrissent pas dans les spams.
Installons Exim4
apt-get install exim4
Configuration
dpkg-reconfigure exim4-config
Choisissez : mail sent by smarthost; no local mail
Ensuite répondez aux questions comme suit :
System mail name: YOUR_HOSTNAME
IP-addresses to listen on for incoming SMTP connections: 127.0.0.1 ; ::1
Other destinations for which mail is accepted: <BLANK>
Visible domain name for local users: <BLANK>
IP address or host name of the outgoing smarthost: smtp.gmail.com::587
Keep number of DNS-queries minimal (Dial-on-Demand)? No
Split configuration into small files? No
Root and postmaster mail recipient: <BLANK>
Ouvrez et éditez le fichier :
/etc/exim4/exim4.conf.template
Recherchez :
.ifdef DCconfig_smarthost DCconfig_satellite
Et ajoutez ces lignes juste après :
send_via_gmail:
driver = manualroute
domains = ! +local_domains
transport = gmail_smtp
route_list = * smtp.gmail.com
Il faut supprimer tous les autres blocks smarthost contenants :
domains = ! +local_domains
Commentez les avec un # en début de ligne
Recherchez les authenticators avec l’occurrence :
begin authenticators
Et ajoutez ces lignes :
gmail_login:
driver = plaintext
public_name = LOGIN
client_send = : VOTRE_EMAIL@gmail.com : VOTRE_PASS_GMAIL
Supprimez tous les autres blocs qui contiennent :
public_name = LOGIN
Vous pouvez aussi juste les renommer comme ceci :
login:
driver = plaintext
public_name = LOGIN_BACK
Cela évite d’avoir un conflit de nom.
Recherchez ensuite :
transport/30_exim4-config_remote_smtp_smarthost
Et ajoutez ces lignes :
gmail_smtp:
driver = smtp
port = 587
hosts_require_auth = $host_address
hosts_require_tls = $host_address
Fermez et enregistrez votre fichier de configuration :
/etc/exim4/exim4.conf.template
On recharge le fichier de conf :
update-exim4.conf
Et on relance le service :
/etc/init.d/exim4 restart
On peut tester notre envoi d’emails :
echo 'Test' | mail -s 'Message test' VOTRE_EMAIL@ADDRESSE