| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| serveurs:installation:postfix [2023/05/10 06:03] – [Définir un "sender" par défaut] jpmilcent | serveurs:installation:postfix [2025/11/30 09:01] (Version actuelle) – [Installer et configurer Postfix] jpmilcent |
|---|
| * Ressource : [[https://www.linode.com/docs/email/postfix/configure-postfix-to-send-mail-using-gmail-and-google-apps-on-debian-or-ubuntu/|Utilisation avec un compte Gmail et le SMTP de Google]] | * Ressource : [[https://www.linode.com/docs/email/postfix/configure-postfix-to-send-mail-using-gmail-and-google-apps-on-debian-or-ubuntu/|Utilisation avec un compte Gmail et le SMTP de Google]] |
| |
| | L'installation d'un serveur SMTP sur un hôte permet de créer un tampon entre cet hôte et un serveur SMTP distant. Si le serveur SMTP distant n'est pas joignable, le serveur local pourra stocker les emails avant de tenter à nouveau un envoi. |
| ===== Configuration SMTP à utiliser ===== | ===== Configuration SMTP à utiliser ===== |
| * En test, si vous ne pouvez pas créer directement le compte email ''mailer'' sur le domaine du SINP, configurer le service de relai SMTP de Google comme indiqué ici : https://support.google.com/a/answer/2956491 | * En test, si vous ne pouvez pas créer directement le compte email ''mailer'' sur le domaine du SINP, configurer le service de relai SMTP de Google comme indiqué ici : https://support.google.com/a/answer/2956491 |
| * Choisir : ''site internet'' | * Choisir : ''site internet'' |
| * Indique le domaine du serveur comme nom de courrier. Ex. : ''silene.eu'' | * Indique le domaine du serveur comme nom de courrier. Ex. : ''silene.eu'' |
| * Ajout des informations du mail permettant l'envoie du message. Dans notre cas l adresse mail est hébergée sur OVH : <code bash> | * Ajout des informations du mail permettant l'envoie du message. Dans notre cas l'adresse mail est hébergée sur OVH : <code bash> |
| vi /etc/postfix/sasl/sasl_passwd | vi /etc/postfix/sasl/sasl_passwd |
| </code> | </code> |
| * Ajouter le contenu (remplacer ''<mot-de-passe>'' par le mot de passe du compte email mailer@cbn-alpin.fr d'**OVH**, pas Gmail): <code bash> | * Ajouter le contenu (remplacer ''<mot-de-passe>'' par le mot de passe du compte email mailer@<domaine-sinp> d'**OVH** et <domaine-sinp> par le domaine du SINP, ex. //silene.eu//): <code bash> |
| [ssl0.ovh.net]:587 mailer@cbn-alpin.fr:<mot-de-passe> | [ssl0.ovh.net]:587 mailer@<domaine-sinp>:<mot-de-passe> |
| </code> | </code> |
| * Créer le fichier de base de données qui contiendra le mot de passe & vérifier qu'elle est bien présente : <code bash> | * Créer le fichier de base de données //sasl_passwd.db// qui contiendra le mot de passe & vérifier qu'elle est bien présente : <code bash> |
| postmap /etc/postfix/sasl/sasl_passwd | postmap /etc/postfix/sasl/sasl_passwd |
| ll /etc/postfix/sasl/ | ll /etc/postfix/sasl/ |
| vi /etc/postfix/main.cf | vi /etc/postfix/main.cf |
| </code> | </code> |
| * Remplacer le contenu suivant : <code properties> | * Remplacer le contenu suivant, ''<server-name>'' peut valoir ''web-paca-sinp'' par exemple : <code properties> |
| | smtpd_banner = $myhostname ESMTP |
| relayhost = [ssl0.ovh.net]:587 | relayhost = [ssl0.ovh.net]:587 |
| myhostname = localhost | myhostname = <server-name> |
| mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain | mydestination = $myhostname, localhost.$mydomain, localhost |
| </code> | </code> |
| * Commenter le contenu suivant : <code properties> | * Commenter le contenu suivant : <code properties> |
| # Location of CA certificates | # Location of CA certificates |
| smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt | smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt |
| # Add Header rewrite | # Add Header rewrite (solution 1 🗑️) |
| smtp_header_checks = pcre:/etc/postfix/smtp_header_checks | # smtp_header_checks = pcre:/etc/postfix/smtp_header_checks |
| # Add Sender rewrite | # Add Sender rewrite (solution 2) |
| sender_canonical_classes = envelope_sender, header_sender | sender_canonical_classes = envelope_sender, header_sender |
| sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps | sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps |
| ===== Définir un "sender" par défaut ===== | ===== Définir un "sender" par défaut ===== |
| Si l'on souhaite contrôler l'adresse email qui envoie les emails du serveur (le ''FROM:''), deux solutions : | Si l'on souhaite contrôler l'adresse email qui envoie les emails du serveur (le ''FROM:''), deux solutions : |
| - réécrire l'entête des emails envoyés à l'aide du paramètre ''smtp_header_check'' et mettre en place un fichier de remplacement à l'aide du paramètre ''smtp_generic_maps'' | - réécrire l'entête des emails envoyés à l'aide du paramètre ''smtp_header_check'' et mettre en place un fichier de remplacement à l'aide du paramètre ''smtp_generic_maps''. Cette solution semble poser problème si l'on souhaite installer OpenDkim. |
| - réecrire avec le from à l'aide de ''sender_canonical_maps'' | - réecrire avec le from à l'aide de ''sender_canonical_maps'' |
| | |
| Pour la solution 1 (voir aussi : https://superuser.com/a/695191): | 🗑️ Pour la **solution 1** (voir aussi : https://superuser.com/a/695191): |
| * Installer le paquet supplémentaire suivant : <code bash> apt install postfix-pcre </code> | * Installer le paquet supplémentaire suivant : <code bash> apt install postfix-pcre </code> |
| * Vérifier la présence du paramètre suivant dans le fichier ///etc/postfix/main.cf// : '' vi /etc/postfix/main.cf '' <code properties> | * Vérifier la présence du paramètre suivant dans le fichier ///etc/postfix/main.cf// : '' vi /etc/postfix/main.cf '' <code properties> |
| </code> | </code> |
| * Exemple : <code>/^From:\s+.*/ REPLACE From: "Silene web" <mailer@silene.eu></code> | * Exemple : <code>/^From:\s+.*/ REPLACE From: "Silene web" <mailer@silene.eu></code> |
| * Redémarrer //Postfix// : '' systemctl restart postfix '' | * Redémarrer //Postfix// : <code bash> systemctl restart postfix </code> |
| |
| Pour la solution 2, ''sender_canonical_maps'' : | Pour la **solution 2**, ''sender_canonical_maps'' : |
| * Créer le fichier suivant : <code bash> | * Créer le fichier suivant : <code bash> |
| vi /etc/postfix/sender_canonical_maps | vi /etc/postfix/sender_canonical_maps |
| |
| ===== Tester l'envoie d'email ===== | ===== Tester l'envoie d'email ===== |
| * Commande d'envoi d'email : | * Commande d'envoi d'email : <code bash>echo "THIS IS A TEST EMAIL sended at $(date "+%F %H:%M")" | mail -s "[${HOSTNAME}] Test email" adminsys@<domaine-sinp> </code> |
| * En test : '' echo "THIS IS A TEST EMAIL sended at $(date "+%F %H:%M")" | mail -s "[${HOSTNAME}] Test email" -r "mailer@cbn-alpin.fr" adminsys@<domaine-sinp> '' | * Vérifier en parallèle les logs : <code bash>tail -f /var/log/syslog </code> |
| * En prod : '' echo "THIS IS A TEST EMAIL sended at $(date "+%F %H:%M")" | mail -s "[${HOSTNAME}] Test email" -r "mailer@<domaine-sinp>" adminsys@<domaine-sinp> '' | |
| * Vérifier en parallèle les logs : '' tail -f /var/log/syslog '' | |
| |