Réseau - Web - GNU/Linux

2017 15 octobre

Envoyer des mails depuis un serveur avec ssmtp

Rédigé par Marc GUILLAUME | Aucun commentaire

EDIT DU 09/12/2019 : sSMTP n'étant plus maintenu il a été retiré des dépôts de Debian 10 nom de code Buster. Mais il existe une alternative encore plus efficace et plus souple tout en étant aussi facile d'utilisation : mSMTP. Voici le lien pour la la configuration de mSMTP.

Vous souhaitez que votre serveur vous envoie des mails dès qu'il se passe quelque chose dessus mais vous n'avez pas envie d'une solution trop lourde comme Sendmail ou Postfix alors sSMTP est fait pour vous. En effet, sSMTP est un MTA (Mail Transfert Agent) ce qui veut dire qu'il ne fait que relayer les mails vers un serveur SMTP externe (celui de votre FAI par exemple ou, encore mieux, votre propre serveur de mail que vous pouvez configurer en suivant le guide Mails façon FAI).

L'avantage d'une telle solution est que sSMTP ne consomme que très très peu de ressources et ne demande qu'une configuration minimale. Dans ces ligne, nous allons voir comment installer et configurer sSMTP afin qu'il relaye les mails émanant de votre serveur vers votre boite mail.

Installation

Pour l'installer rien de plus simple. sSMTP se trouve dans les dépôts donc il suffit de taper dans un terminal :

sudo apt-get install ssmtp

Configuration

sSMTP se configure avec les fichiers suivants : /etc/ssmtp/ssmtp.conf et /etc/ssmtp/revaliases.

/etc/ssmtp/ssmtp.conf :

### CONFIGURATION GENERALE ###

MailHub=smtp.de.votre.fai	# Serveur SMTP vers lequel forwarder les mails
RewriteDomain=			# Domaine depuis lequel est envoyé le mail
                                # (on peut le laisser vide)
Hostname=nom.de.votre.serveur	# Nom de la machine
FromLineOverride=yes            # Ré-écriture de l'expéditeur (champ from)
Root=admin@mondomaine.tld       # redirige les mails à destination de "root"
                                # vers srv-ced@ced-info.com

### CONFIGURATION DE L'AUTHENTIFICATION ###

#UseTLS=yes
UseSTARTTLS=YES              
AuthUser=votre.utilisateur      # Nom d'utlisateur pour l'authentification SMPT
AuthPass=votre_mot_de_passe                       # Le mot de passe correspondant

La variable AuthUser est des fois sous la forme votre.utilisateur@votre.fai cela dépend du smtp correspondant.

Une fois ce fichier de confguration sauvegardé nous allons pouvoir modifier le fichier /etc/ssmtp/revaliases :

/etc/ssmtp/revalias

root:admin@mondomaine.tld:smtp.de.votre.fai

Ce fichier permet de spécifier quel smtp doit utiliser chaque compte utilisateur (si ce n'est pas celui par défault).

ATTENTION : il est de bonne pratique, quand le serveur smtp le permet d'utiliser le port de soumission (587) le port 25 tendant à être réservé aux échanges entre serveurs de mailcertains FAI bloque le port 25 (le port standard du smtp afin d'éviter les spams). Dans ce cas là, il faut notifier le port à utiliser en remplacement. Ce port se renseigne pour la variable MailHub dans le fichier /etc/ssmtp/ssmtp.conf comme ceci :

 MailHub=smtp.de.votre.fai:587

(si le port smtp alternatif de votre FAI est 587) et aussi dans le fichier /etc/ssmtp/revaliases comme ceci :

root:admin@mondomaine.tld:smtp.de.votre.fai:587

Vous pouvez maintenant essayer d'envoyer un mail en ligne de commande pour voir si cela fonctionne. Et oui l'avantage avec sSMTP c'est qu'il n'y a pas de démons à relancer lors d'une modification. Une fois que votre configuration est enregistrée, elle est directement prise en compte. 🙂

Envoi d'un mail de test

Pour envoyer un mail en ligne de commande, nous allons utiliser la commande mail.

Tout d'abord installer le paquet mailx si celui n'est pas présents sur votre serveur.

sudo apt-get install mailx

Ensuite nous allons rédiger le mail. Pour cela, tapez la commande suivante :

mail -s "Test mail" votre.adresse.mail@domaine.de.votre.fai

L'option -s permet de spécifier le sujet du mail (Attention pour les sujets de mail avec des espaces vous serez obligés de mettre des " sinon il ne le prendra pas en compte)

Ensuite un champ vide se présente, tapez ce que vous voulez (par exemple test mail)

Une fois que vous avez fini d'écrire le contenu du mail appuyer sur la touche Entrée et mettre un "point".

Le point doit se situer sur une ligne à part et il doit être le seul caractère sur la ligne (cela permet de délimiter la fin du mail). Comme ceci :

test mail
.

Ensuite le champ Cc: apparaît, vous pouvez le passer en appuyant sur la touche Entrés (ce champ permet de spécifier une autre adresse email et de la mettre en copie du mail que vous êtes en train de rédiger.

Et enfin normalement vous devriez retourner sur une ligne semblable à celle-ci:

ced@srv-ced:~$

Vous pouvez vérifier le bon envoi du mail en consultant les logs à l'aide de la commande :

cat /var/log/mail.log

Vous devriez avoir une ligne semblable à celle ci :

Feb 21 20:13:52 srv-ced sSMTP[29080]: Sent mail for srv-ced@ced-info.com
(221 OK) uid=1003 username=srv-ced outbytes=637

Si la valeur de la valeur outbytes est différente de celle-ci ce n'est pas grave elle correspond à la taille du mail envoyé.

Voilà, maintenant votre serveur peut envoyer des mails (ou plutôt les faire relayer) 🙂

Envoyer des mails via la fonction mail de php

Pour pouvoir utiliser votre MTA ssmtp avec la fonction mail de php sous Linux il faut ajouter dans votre fichier php.ini la ligne suivante :

sendmail_path = /usr/sbin/sendmail -t -i

comme /usr/sbin/sendmail est en fait un lien symbolique sur /usr/bin/ssmtp php enverra ses courriers via ssmtp.

Écrire un commentaire

Quelle est la dernière lettre du mot xumj ?

Fil RSS des commentaires de cet article

À propos

Yakati.com - Réseau - Web - GNU/Linux © 2017

Généré par PluXml en 0.024s  Compression GZIP activée - Administration

Mes coordonnées

Marc Guillaume
contact[at]yakati.com
79150 ÉTUSSON

Crédits

Pour la gestion du contenu

Généré par PluXml, le Blog ou Cms sans base de données

Pour le contenu

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.

Pour le thème

Thème SOLID de blacktie.co adapté pour PluXml