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:58] – [Prérequis] 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 4: Ligne 4:
 Application (exemple Documenso) => Postfix (port 25) => Script Python (Communication via LPIPE) => Microsoft Graph API Application (exemple Documenso) => Postfix (port 25) => Script Python (Communication via LPIPE) => Microsoft Graph API
  
-===== Prérequis =====+===== 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> 
 +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 275: Ligne 313:
 #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 297: Ligne 345:
 </code> </code>
  
-===== Préparation Azure AD (OAuth2) =====+==== Tester ====
  
-  * création d'une **Inscription d'applications** Entra ID : +  * envoyer un message
-    * 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 +echo "hello" | mail -s "test mime" -A document.pdf charles@gmail.xxx
-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+  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) : 
  
 <code> <code>
-# Add Docker's official GPG key: +cat /tmp/graph_debug.log
-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> </code>
  
-   mettre à jour+  vérifier dans les logs de Potsfix qu'il n'y a pas d'erreur : 
  
 <code> <code>
-apt update && apt upgrade -y+journalctl -u postfix -n 50
 </code> </code>
  
- + 
-  * installer Docker +
- +
-<code> +
-apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin +
-</code> +
- +
-  * Vérifier l'installation: +
- +
-<code> +
-docker --version +
-docker compose version +
-</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.1774720699.txt.gz · Dernière modification : 2026/03/28 18:58 de techer.charles_educ-valadon-limoges.fr