Outils pour utilisateurs

Outils du site


systeme:smtp:relais

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
systeme:smtp:relais [2026/03/28 18:44] – [Script Python] techer.charles_educ-valadon-limoges.frsysteme:smtp:relais [2026/03/28 19:23] (Version actuelle) – [utiliser LPIPE pour appeler le script] techer.charles_educ-valadon-limoges.fr
Ligne 2: Ligne 2:
 ===== Principe ===== ===== Principe =====
  
-Documenso  => Postfix local (port 25) => SMTP2Graph (localhost:2525) => Microsoft Graph API (OAuth2 Client Credentials) =>  sendMail+Application (exemple Documenso=> Postfix (port 25) => Script Python (Communication via LPIPE) => Microsoft Graph API
  
 +===== Préparation Azure AD (OAuth2) =====
  
-Autre solution :  +  * création d'une **Inscription d'applications** Entra ID 
-Postfix => Script Python (Communication via LPIPE) => Microsoft Graph API+    * Portail Azure => Entra ID 
 +    * Inscription d'applications => Nouvelle inscription 
 +    * Nom : smtp2graph-relay 
 +    * Locataire unique seulement 
 +    * S'incrire
  
-===== Prérequis =====+  * Récupérer : 
 +    * Tenant ID 
 +    * Client ID 
 +    * Ajouter un secret Client (dans Certificates & Secrets) 
 + 
 +  * Ajouter la permission Microsoft Graph : 
 +    * Autorisations d'application (et non Autorisations déléguées) :Mail.Send 
 + 
 +  * Grant admin consent. 
 + 
 +  * Adresse email 0365 utilisée pour l’envoi  afin que l'app puisse avoir le droit d’envoyer au nom de ce compte. 
 + 
 +===== Installation des prérequis ===== 
 +    * conteneur LXC : 2 Gio RAM ; 2 coeurs ; DD de 20 Gio 
 +    * modifier le fichier **/etc/apt/sources.list.d/debian.sources** pour avoir ce contenu (http://security.debian.org trixie-security remplacé par http://deb.debian.org/debian-security)  
 + 
 +<code> 
 +Types: deb 
 +URIs: http://deb.debian.org/debian-security 
 +Suites: trixie-security 
 +Components: contrib main 
 +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg 
 + 
 +Types: deb 
 +URIs: http://deb.debian.org/debian 
 +Suites: trixie trixie-updates 
 +Components: contrib main 
 +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg 
 +</code>
  
 +  *. installer les paquets pour le script
 <code> <code>
 apt install mailutils libsasl2-modules apt install mailutils libsasl2-modules
Ligne 15: Ligne 49:
 </code> </code>
  
-visualiser logs :  +
-<code> +
-journalctl -u postfix -n 50 +
-</code>+
 ===== Script Python ===== ===== Script Python =====
  
Ligne 252: Ligne 283:
  
 <code> <code>
-*     lpipe:dummy 
 *     graph: *     graph:
 </code> </code>
Ligne 276: Ligne 306:
 </code> </code>
  
-  * Configurer Postfix en modifiant le fichier /etc/postfix/main.cf :+  * Configurer Postfix en modifiant le fichier /etc/postfix/main.cf pour ajouter :
  
 <code> <code>
-myhostname = postfix-relay.lan +#myhostname = postfix-relay.lan 
-mydomain = lan +#mydomain = lan 
-mydestination = +#mydestination = 
-relayhost =+#relayhost = 
 + 
 +# Postfix doit écouter sur toutes les interfaces 
 +inet_interfaces = all 
 + 
 +# Autoriser l’IP des serveurs client  
 +mynetworks = 127.0.0.0/8 9.9.9.0/24 
 + 
 +# Postfix doit accepter les mails : 
 +smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination 
  
 transport_maps = hash:/etc/postfix/transport transport_maps = hash:/etc/postfix/transport
Ligne 290: Ligne 330:
 </code> </code>
  
-  * Config /etc/postfix/master.cf pour appeler le script Python en ajoutant :+  * Config /etc/postfix/master.cf pour appeler le script Python en ajoutant à la fin du fichier :
  
 <code> <code>
Ligne 299: Ligne 339:
 </code> </code>
  
- +  relancer Postfix :
-===== Préparation Azure AD (OAuth2) ===== +
- +
-  création d'une **Inscription d'applications** Entra ID : +
-    * Portail Azure => Entra ID +
-    * Inscription d'applications => Nouvelle inscription +
-    * Nom : smtp2graph-relay +
-    * Locataire unique seulement +
-    * S'incrire +
- +
-  * Récupérer : +
-    * Tenant ID +
-    * Client ID +
-    * Ajouter un secret Client (dans Certificates & Secrets) +
- +
-  * Ajouter la permission Microsoft Graph : +
-    * Autorisations d'application (et non Autorisations déléguées) :Mail.Send +
- +
-  * Grant admin consent. +
- +
-  * Adresse email 0365 utilisée pour l’envoi  afin que l'app puisse avoir le droit d’envoyer au nom de ce compte. +
- +
-===== Installation des prérequis ===== +
-    * conteneur LXC : 2 Gio RAM ; 2 coeurs ; DD de 20 Gio +
-    * modifier le fichier **/etc/apt/sources.list.d/debian.sources** pour avoir ce contenu (http://security.debian.org trixie-security remplacé par http://deb.debian.org/debian-security) +
  
 <code> <code>
-Types: deb +systemctl restart postfix
-URIs: http://deb.debian.org/debian-security +
-Suites: trixie-security +
-Components: contrib main +
-Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg +
- +
-Types: deb +
-URIs: http://deb.debian.org/debian +
-Suites: trixie trixie-updates +
-Components: contrib main +
-Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg+
 </code> </code>
  
-   * ajouter les dépôts+==== Tester ====
  
-<code> +  * envoyer un message
-# Add Docker's official GPG key: +
-apt update +
-apt install ca-certificates curl +
-install -m 0755 -d /etc/apt/keyrings +
-curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc +
-chmod a+r /etc/apt/keyrings/docker.asc +
- +
-# Add the repository to Apt sources: +
-tee /etc/apt/sources.list.d/docker.sources <<EOF +
-Types: deb +
-URIs: https://download.docker.com/linux/debian +
-Suites: $(. /etc/os-release && echo "$VERSION_CODENAME"+
-Components: stable +
-Signed-By: /etc/apt/keyrings/docker.asc +
-EOF +
- +
-</code> +
- +
-   * mettre à jour+
  
 <code> <code>
-apt update && apt upgrade -y+echo "hello" | mail -s "test mime" -A document.pdf charles@gmail.xxx
 </code> </code>
  
- +  vérifier dans les logs générés par le script qu'il n'y a pas d'erreur (le statut doit être 202) : 
-  installer Docker+
  
 <code> <code>
-apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin+cat /tmp/graph_debug.log
 </code> </code>
  
-  * Vérifier l'installation:+  * vérifier dans les logs de Potsfix qu'il n'y a pas d'erreur 
  
 <code> <code>
-docker --version +journalctl -u postfix -n 50
-docker compose version+
 </code> </code>
  
-===== Postfix & 1smtp2graph ===== + 
- +
-  * utilisation d'un Docker compose +
- +
-<code file docker-compose.yml> +
-services: +
-  postfix: +
-    image: boky/postfix +
-    container_name: postfix-relay +
-    restart: unless-stopped +
-    environment: +
-      - ALLOW_EMPTY_SENDER=true +
-    volumes: +
-      - ./postfix/main.cf:/etc/postfix/main.cf +
-      - ./postfix/master.cf:/etc/postfix/master.cf +
-    network_mode: "host" +
- +
-  smtp2graph: +
-    image: ghcr.io/microsoft/smtp-oauth2-proxy:latest +
-    container_name: smtp2graph +
-    restart: unless-stopped +
-    environment: +
-      PROXY_LISTEN_ADDRESS: "0.0.0.0:2525" +
-      OAUTH2_TENANT_ID: "TON_TENANT_ID" +
-      OAUTH2_CLIENT_ID: "TON_CLIENT_ID" +
-      OAUTH2_CLIENT_SECRET: "TON_CLIENT_SECRET" +
-      OAUTH2_SENDER: "ton.adresse@tondomaine.com" +
-    ports: +
-      - "2525:2525" +
- +
- +
-</code> +
- +
- +
-==== postfix/main.cf (spécial "transport smtp2graph") ==== +
- +
-<code> +
-# Postfix minimal relay to smtp2graph +
-myhostname = postfix-relay.lan +
-mydomain = lan +
-myorigin = /etc/mailname +
-mydestination = +
-relayhost = [127.0.0.1]:2525 +
- +
-smtp_tls_security_level = may +
-smtp_sasl_auth_enable = no +
- +
-# Generic mapping (optionnel pour réécrire root@...) +
-smtp_generic_maps = hash:/etc/postfix/generic +
-</code> +
- +
-==== /etc/postfix/generic==== +
- +
-<code> +
-root@postfix-relay.lan  ton.adresse@tondomaine.com +
-</code> +
- +
- +
-Puis : +
-<code> +
-postmap /etc/postfix/generic +
-</code> +
- +
-==== postfix/master.cf ==== +
- +
-<code> +
-smtp      inet  n                               smtpd +
-pickup    unix  n                         60      pickup +
-cleanup   unix  n                               cleanup +
-qmgr      unix  n                   300           qmgr +
-rewrite   unix  -                               trivial-rewrite +
-bounce    unix  -                               bounce +
-defer     unix  -                               bounce +
-trace     unix  -                               bounce +
-verify    unix  -                               verify +
-flush     unix  n                               flush +
-proxymap  unix  -                               proxymap +
-proxywrite unix -                               proxymap +
-smtp      unix  -                               smtp +
-relay     unix  -                               smtp +
-discard   unix  -                               discard +
-</code> +
- +
-On laisse Postfix en mode simple (no chroot) pour éviter les soucis SASL/TLS. +
- +
-==== Configuration Documenso ==== +
- +
-Dans .env : +
-<code> +
-NEXT_PRIVATE_SMTP_TRANSPORT="smtp-auth" +
-NEXT_PRIVATE_SMTP_HOST="127.0.0.1" +
-NEXT_PRIVATE_SMTP_PORT="25" +
-NEXT_PRIVATE_SMTP_SECURE="false" +
-NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS="true" +
-NEXT_PRIVATE_SMTP_FROM_ADDRESS="ton.adresse@tondomaine.com" +
-NEXT_PRIVATE_SMTP_FROM_NAME="Documenso" +
-</code> +
-===== Créer un compte Resend ===== +
-Lien : https://resend.com/ +
- +
- +
-  * générer une clé d'API +
- +
-===== Créer un compte SendGrid ===== +
-Lien : https://login.sendgrid.com/ +
- +
- +
-  * générer une clé d'API +
- +
-===== Installer et confoigurer Postfix ===== +
- +
-<code> +
-apt update +
-apt install postfix mailutils libsasl2-modules +
-</code> +
- +
-  * Créer le fichier /etc/postfix/sasl_passwd  +
- +
-<code> +
-[smtp.sendgrid.net]:587 apikey:re_123456789abcdef +
-</code> +
- +
-<code> +
-postmap /etc/postfix/sasl_passwd +
-chmod 600 /etc/postfix/sasl_passwd* +
-</code> +
- +
-  * copier les modules SASL dans le CHROOT +
- +
-<code> +
-mkdir -p /var/spool/postfix/usr/lib/x86_64-linux-gnu/sasl2/ +
-cp -a /usr/lib/x86_64-linux-gnu/sasl2/* /var/spool/postfix/usr/lib/x86_64-linux-gnu/sasl2/ +
-</code> +
-===== Configurer Postfix en “SMTP relay” vers Microsoft 365 ===== +
- +
-  * éditer **/etc/postfix/main.cf** : +
- +
-<code> +
-nano /etc/postfix/main.cf +
-</code> +
- +
-  * Ajoute / remplace : +
- +
-<code> +
-relayhost = [smtp.sendgrid.net]:587 +
- +
-smtp_sasl_auth_enable = yes +
-smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd +
-smtp_sasl_security_options = noanonymous +
-smtp_use_tls = yes +
-smtp_tls_security_level = encrypt +
-smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt +
- +
- +
-inet_interfaces = all +
-inet_protocols = ipv4 +
-</code> +
- +
-<code> +
-systemctl restart postfix +
-</code>+
systeme/smtp/relais.1774719897.txt.gz · Dernière modification : 2026/03/28 18:44 de techer.charles_educ-valadon-limoges.fr