Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
ssmtp [Le 08/03/2018, 17:11] krodelabestiole [Configuration de ssmtp.conf] +ex. OVH |
ssmtp [Le 02/03/2023, 00:21] (Version actuelle) sefran Ajout tag |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Xenial serveur mail courriel}} | + | {{tag>Xenial serveur mail courriel vetuste MTA}} |
---- | ---- | ||
====== ssmtp ====== | ====== ssmtp ====== | ||
+ | |||
+ | <note warning> | ||
+ | **ssmtp** n'est plus actif depuis 2013. Nous vous conseillons vivement d'utiliser une alternative comme [[:msmtp]]. | ||
+ | </note> | ||
**ssmtp** permet à des applications d'envoyer des courriels via la commande ''/usr/sbin/sendmail''. Contrairement à [[:postfix]], il ne fait que rediriger les courriers vers un serveur SMTP externe. C'est donc un outil très léger et rapide, et qui ne demande que très peu de paramétrage. | **ssmtp** permet à des applications d'envoyer des courriels via la commande ''/usr/sbin/sendmail''. Contrairement à [[:postfix]], il ne fait que rediriger les courriers vers un serveur SMTP externe. C'est donc un outil très léger et rapide, et qui ne demande que très peu de paramétrage. | ||
Ligne 18: | Ligne 22: | ||
Si vous n'avez rien, l'installation et la configuration de ssmtp vous permettra d'utiliser sendmail. | Si vous n'avez rien, l'installation et la configuration de ssmtp vous permettra d'utiliser sendmail. | ||
- | ===== Alternatives ===== | + | ===== Méthodes alternatives ===== |
* Pour envoyer un courriel en ligne de commande consultez cette [[:tutoriel:comment_envoyer_un_mail_par_smtp_en_ligne_de_commande|page]]. | * Pour envoyer un courriel en ligne de commande consultez cette [[:tutoriel:comment_envoyer_un_mail_par_smtp_en_ligne_de_commande|page]]. | ||
Ligne 56: | Ligne 60: | ||
===La configuration de root=== | ===La configuration de root=== | ||
- | <file># Config file for sSMTP sendmail | + | <file>#Config file for sSMTP sendmail |
# | # | ||
- | # Tous les utilisateurs avec un uid < 1000 enverront un courriel avec ce nom | + | #Tous les utilisateurs avec un uid < 1000 enverront un courriel avec ce nom |
- | # Laissez vide ou commentez la ligne pour déactiver la réécriture | + | #Laissez vide ou commentez la ligne pour déactiver la réécriture |
root=votre_identifiant@fournisseur.com</file> | root=votre_identifiant@fournisseur.com</file> | ||
Vous pouvez mettre ici votre adresse de courriel. | Vous pouvez mettre ici votre adresse de courriel. | ||
===La configurationd'AuthUser=== | ===La configurationd'AuthUser=== | ||
- | <note help>Ce paramètre, tout comme le suivant (AuthPass=) n'est pas présent par défaut dans le fichier de configuration, rajoutez-le après root=identifiant@fournisseur.com par exemple, mais ne le mettez pas à la fin du fichier sinon dans les logs (var/log/mail.log) ou dans le terminal vous pourrez avoir le message d'erreur suivant | + | <note help>Ce paramètre, tout comme le suivant (AuthPass=) n'est pas présent par défaut dans le fichier de configuration, rajoutez-le après root=identifiant@fournisseur.com par exemple, mais ne le mettez pas à la fin du fichier sinon dans les logs (var/log/mail.log) ou dans le terminal vous pourrez avoir le message d'erreur suivant |
<code>send-mail: Authorization failed (535 5.7.0 authentication failed) | <code>send-mail: Authorization failed (535 5.7.0 authentication failed) | ||
Can't send mail: sendmail process failed with error code 1</code></note> | Can't send mail: sendmail process failed with error code 1</code></note> | ||
- | <file># Nom d'utilisateur du compte email avec lequel vous envoyez les courriels | + | <file>#Nom d'utilisateur du compte email avec lequel vous envoyez les courriels |
AuthUser=votre_identifiant@fournisseur.com</file> | AuthUser=votre_identifiant@fournisseur.com</file> | ||
Mettez donc l'identifiant qui vous permet d'accéder à la boîte de messagerie. Cela peut être du type votre_identifiant@fournisseur.com OU votre_identifiant OU votre_identifiant+fournisseur.com (remplacez @ par +). Pour info, le choix entre les 3 possibilités dépend de la configuration du serveur smtp. Par exemple, pour moi, ça a fonctionné avec votre_identifiant@fournisseur.com. | Mettez donc l'identifiant qui vous permet d'accéder à la boîte de messagerie. Cela peut être du type votre_identifiant@fournisseur.com OU votre_identifiant OU votre_identifiant+fournisseur.com (remplacez @ par +). Pour info, le choix entre les 3 possibilités dépend de la configuration du serveur smtp. Par exemple, pour moi, ça a fonctionné avec votre_identifiant@fournisseur.com. | ||
===Configuration d'AuthPass=== | ===Configuration d'AuthPass=== | ||
- | <file># Mot de passe de ce même compte | + | <file>#Mot de passe de ce même compte |
AuthPass=le_mot_de_passe_utilisé_pour_votre_identifiant@fournisseur.com</file> | AuthPass=le_mot_de_passe_utilisé_pour_votre_identifiant@fournisseur.com</file> | ||
Mettez ici votre mot de passe. | Mettez ici votre mot de passe. | ||
Ligne 79: | Ligne 83: | ||
sudo chown root:mail /usr/sbin/ssmtp /etc/ssmtp{,/{ssmtp.conf,revaliases}} | sudo chown root:mail /usr/sbin/ssmtp /etc/ssmtp{,/{ssmtp.conf,revaliases}} | ||
sudo chmod 2711 /usr/sbin/ssmtp | sudo chmod 2711 /usr/sbin/ssmtp | ||
- | sudo chmod o-rwx /etc/ssmtp /etc/ssmtp/ssmtp.conf; # 0750, 0640 | + | sudo chmod o-rwx /etc/ssmtp /etc/ssmtp/ssmtp.conf; #0750, 0640 |
sudo dpkg-statoverride --add root mail 2711 /usr/sbin/ssmtp | sudo dpkg-statoverride --add root mail 2711 /usr/sbin/ssmtp | ||
sudo dpkg-statoverride --add root mail 0750 /etc/ssmtp | sudo dpkg-statoverride --add root mail 0750 /etc/ssmtp | ||
Ligne 88: | Ligne 92: | ||
=== Configuration de mailhub=== | === Configuration de mailhub=== | ||
- | <file># The place where the mail goes. The actual machine name is required no | + | <file>#The place where the mail goes. The actual machine name is required no |
- | # MX records are consulted. Commonly mailhosts are named mail.domain.com | + | #MX records are consulted. Commonly mailhosts are named mail.domain.com |
mailhub=mail.fournisseur.com:587</file> | mailhub=mail.fournisseur.com:587</file> | ||
Ligne 97: | Ligne 101: | ||
=== Configuration de rewriteDomain === | === Configuration de rewriteDomain === | ||
- | <file># Where will the mail seem to come from? | + | <file>#Where will the mail seem to come from? |
rewriteDomain=fournisseur.com</file> | rewriteDomain=fournisseur.com</file> | ||
Ligne 105: | Ligne 109: | ||
=== Configuration de hostname === | === Configuration de hostname === | ||
- | <file># The full hostname | + | <file>#The full hostname |
hostname=nom_de_votre_ordinateur.domain</file> | hostname=nom_de_votre_ordinateur.domain</file> | ||
Ligne 114: | Ligne 118: | ||
=== Configuration de FromLineOverride === | === Configuration de FromLineOverride === | ||
- | <file># Are users allowed to set their own From: address? | + | <file>#Are users allowed to set their own From: address? |
- | # YES - Allow the user to specify their own From: address | + | #YES - Allow the user to specify their own From: address |
- | # NO - Use the system generated From: address | + | #NO - Use the system generated From: address |
FromLineOverride=YES</file> | FromLineOverride=YES</file> | ||
Ligne 122: | Ligne 126: | ||
=== Sécurité === | === Sécurité === | ||
- | <file># Utilisation d'une connexion sécurisée SSL/TLS (décommenter pour activer) | + | <file>#Utilisation d'une connexion sécurisée SSL/TLS (décommenter pour activer) |
#UseTLS=YES</file> | #UseTLS=YES</file> | ||
Ligne 128: | Ligne 132: | ||
<note important>Si lors d'un envoi de courriels avec le terminal ou dans les logs (var/log/mail.log) vous voyez <code>send-mail: Connection lost in middle of processing | <note important>Si lors d'un envoi de courriels avec le terminal ou dans les logs (var/log/mail.log) vous voyez <code>send-mail: Connection lost in middle of processing | ||
- | Can't send mail: sendmail process failed with error code 1</code>, c'est peut être lié à un problème d'utilisation de TLS. Commenter UseTLS=YES peut permettre de résoudre le problème. | + | Can't send mail: sendmail process failed with error code 1</code>, c'est peut être lié à un problème d'utilisation de TLS. Commenter UseTLS=YES peut permettre de résoudre le problème. |
</note> | </note> | ||
Ligne 134: | Ligne 138: | ||
Un exemple de fichier ssmtp.conf fonctionnel avec GMAIL dont l'adresse électronique est <pierre.kiroul@gmail.com> et le mot de passe <123poireau> : | Un exemple de fichier ssmtp.conf fonctionnel avec GMAIL dont l'adresse électronique est <pierre.kiroul@gmail.com> et le mot de passe <123poireau> : | ||
- | <code>root=pierre.kiroul@gmail.com # Your email address | + | <code>root=pierre.kiroul@gmail.com #Your email address |
UseSTARTTLS=YES | UseSTARTTLS=YES | ||
- | mailhub=smtp.gmail.com:587 # Address and port number to send mail to | + | mailhub=smtp.gmail.com:587 #Address and port number to send mail to |
- | AuthUser=pierre.kiroul@gmail.com # Your Username | + | AuthUser=pierre.kiroul@gmail.com #Your Username |
- | AuthPass=123poireau # Your Password | + | AuthPass=123poireau #Your Password |
- | rewriteDomain= # So the message appears to come from FAI | + | rewriteDomain= #So the message appears to come from FAI |
- | FromLineOverride=YES # So the message appears to come from FAI | + | FromLineOverride=YES #So the message appears to come from FAI |
- | hostname=pierre.kiroul@gmail.com # Hostname: use hostname -f in a Terminal</code> | + | hostname=pierre.kiroul@gmail.com #Hostname: use hostname -f in a Terminal</code> |
et pour OVH : | et pour OVH : | ||
<code>AuthUser=utilisateur@domaine.com | <code>AuthUser=utilisateur@domaine.com | ||
AuthPass=########## | AuthPass=########## | ||
+ | mailhub=ssl0.ovh.net:465 | ||
UseTLS=Yes | UseTLS=Yes | ||
- | mailhub=ns0.ovh.net:465 | ||
FromLineOverride=YES</code> | FromLineOverride=YES</code> | ||
==== Configuration de revaliases ==== | ==== Configuration de revaliases ==== | ||
Ligne 153: | Ligne 157: | ||
Passons maintenant au deuxième et dernier fichier à éditer. [[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] le fichier **/etc/ssmtp/revaliases** avec les [[:sudo|droits d'administration]], et appliquez les modifications suivantes : | Passons maintenant au deuxième et dernier fichier à éditer. [[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] le fichier **/etc/ssmtp/revaliases** avec les [[:sudo|droits d'administration]], et appliquez les modifications suivantes : | ||
- | <file># sSMTP aliases | + | <file>#sSMTP aliases |
- | # | + | |
- | # Format: local_account:outgoing_address:mailhub | + | |
# | # | ||
- | # Example: root:your_login@your.domain:mailhub.your.domain[:port] | + | #Format: local_account:outgoing_address:mailhub |
- | # where [:port] is an optional port number that defaults to 25. | + | # |
+ | #Example: root:your_login@your.domain:mailhub.your.domain[:port] | ||
+ | #where [:port] is an optional port number that defaults to 25. | ||
root:votre_identifiant@fournisseur.com:mail.fournisseur.com:587 | root:votre_identifiant@fournisseur.com:mail.fournisseur.com:587 | ||
- | # Other System user: (for Apache) | + | #Other System user: (for Apache) |
- | # www-data:votre_identifiant@fournisseur.com:mail.fournisseur.com:587 | + | #www-data:votre_identifiant@fournisseur.com:mail.fournisseur.com:587 |
</file> | </file> | ||
Ligne 170: | Ligne 174: | ||
<note tip>Exemple de fichier <revaliases> fonctionnel (avec le fichier <ssmtp.conf> d'exemple ci-dessus), pour l'utilisateur <pierre> : | <note tip>Exemple de fichier <revaliases> fonctionnel (avec le fichier <ssmtp.conf> d'exemple ci-dessus), pour l'utilisateur <pierre> : | ||
<code> | <code> | ||
- | # sSMTP aliases | + | #sSMTP aliases |
- | # | + | # |
- | # Format: local_account:outgoing_address:mailhub | + | #Format: local_account:outgoing_address:mailhub |
# | # | ||
root:pierre.kiroul@gmail.com:smtp.gmail.com:587 | root:pierre.kiroul@gmail.com:smtp.gmail.com:587 | ||
Ligne 179: | Ligne 183: | ||
</note> | </note> | ||
- | ==== Ouverture des ports ==== | + | ==== Ouverture des ports ==== |
Selon la configuration de votre pare-feu et/ou de votre box/routeur, vous pouvez être appelé(e) à permettre le trafic sur les ports utilisés pour la messagerie. Lorsque les ports ne sont pas ouverts correctement, la connexion au serveur smtp est bloquée ''mail: impossible d'expédier le message : Processus terminé avec un état de sortie non nul'', et ssmtp enregistre un message d'erreur dans /var/log/mail.err : ''Cannot open mail.fournisseur.com:587''. | Selon la configuration de votre pare-feu et/ou de votre box/routeur, vous pouvez être appelé(e) à permettre le trafic sur les ports utilisés pour la messagerie. Lorsque les ports ne sont pas ouverts correctement, la connexion au serveur smtp est bloquée ''mail: impossible d'expédier le message : Processus terminé avec un état de sortie non nul'', et ssmtp enregistre un message d'erreur dans /var/log/mail.err : ''Cannot open mail.fournisseur.com:587''. | ||
Ligne 203: | Ligne 207: | ||
==== En Ligne de commande ==== | ==== En Ligne de commande ==== | ||
- | Une fois ssmtp configuré, vous pouvez [[:tutoriel:comment_installer_un_paquet|installez le paquet]] [[apt://mailutils|mailutils]] ou [[apt://bsd-mailx|bsd-mailx]] et envoyer un courriel avec une des commandes suivantes : | + | Une fois ssmtp configuré, vous pouvez [[:tutoriel:comment_installer_un_paquet|installer le paquet]] [[apt://mailutils|mailutils]] ou [[apt://bsd-mailx|bsd-mailx]] et envoyer un courriel avec une des commandes suivantes : |
avec **//mailutils//** : | avec **//mailutils//** : | ||
Ligne 213: | Ligne 217: | ||
Vous pourrez ainsi vérifier la configuration de ssmtp.conf et essayer de modifier certains paramètres sur ce dernier. | Vous pourrez ainsi vérifier la configuration de ssmtp.conf et essayer de modifier certains paramètres sur ce dernier. | ||
- | ==== Paramétrer pour LAMP (fonction mail() de PHP) ==== | ||
- | Ouvrez le fichier ''/etc/php5/apache2/php.ini'' et éditez la ligne suivante((l'option **-l** n'est pas utilisée par ''ssmtp'')) : | + | ==== Astuce pour associer un user système à une adresse mail ==== |
- | <code>sendmail_path = /usr/sbin/ssmtp -t</code> | + | Il peut être intéressant que les mails adressés à un user système soit redirigé vers un vraie adresse e-mail au lieu de celle généré par ssmtp. En effet, la commande suivante enverra un mail à l'adresse monlogin@hostname ou monlogin@rewriteddomain |
- | + | <code> | |
- | et ne pas oublier de redémarrer le serveur PHP avec la commande: | + | echo "contenu du mail" | mail -s "objet du mail" monlogin |
- | + | </code> | |
- | <code>sudo service apache2 restart</code> | + | |
+ | Pour que cette commande envoi un mail à une vraie adresse e-mail, il est nécessaire d'avoir installer xmail. Il faut configurer le fichier ~/.mailrc avec le contenu suivant | ||
+ | <code> | ||
+ | alias monlogin Mon Nom<mavraie@adresse.fr> | ||
+ | </code> | ||
+ | Vous pourrez tester la commande ci-dessus, l'effet est immédiat. Il recevera des notifications directement sur son adresse mail. | ||
===== Accéder aux logs ====== | ===== Accéder aux logs ====== | ||
Ligne 247: | Ligne 255: | ||
Autres liens : | Autres liens : | ||
- | <del> * **(fr)** [[http://www.d-sites.com/2009/06/19/utiliser-un-serveur-smtp-distant-pour-envoyer-des-mails-depuis-son-serveur/]] ;</del> (le nom de domaine est à vendre ;) ) | + | * **(fr)** [[https://forum.ubuntu-fr.org/viewtopic.php?id=137722]] Régler ssmtp pour fonctionner avec Gmail + résolutions d'autres problèmes ; |
- | * **(fr)** [[http://forum.ubuntu-fr.org/viewtopic.php?id=137722]] Régler ssmtp pour fonctionner avec Gmail + résolutions d'autres problèmes ; | + | * **(fr)** [[https://forum.ubuntu-fr.org/viewtopic.php?id=217202]] Exemple de configuration. |
- | * **(fr)** [[http://forum.ubuntu-fr.org/viewtopic.php?id=217202]] Exemple de configuration. | + | |
- | <del> * **(en)** [[https://cloud-support.engineyard.com/faqs/questions/ssmtp]] Conseils sur la configuration de ssmtp.</del> (lien mort :'( ) | + | |