SMTP pour Python — le courrier de votre script ou app Django qui arrive
Python intègre SMTP : avec smtplib, vous envoyez un message en quelques lignes, et Django regroupe cela dans sa propre couche mail avec des réglages EMAIL. Ce qu'aucun des deux ne fournit, c'est la délivrabilité — elle dépend du serveur par lequel vous envoyez.
Que vous ayez un script isolé, une app Flask ou un projet Django : les réglages sont les mêmes cinq données. Vous les pointez vers votre relais et le code qui construit les messages demeure inchangé.
Pourquoi cela coince sans relais
Le courrier Python vient souvent de l'arrière-plan : un rapport nocturne, une tâche cron qui envoie des factures, un script qui alerte quand une mesure sort de la marge. Personne ne le surveille — et donc personne ne remarque que le serveur destinataire les refuse en silence. Avec Django s'ajoute la surprise classique de la mise en production : en développement, tout va vers la console, en production vers de vrais fournisseurs qui contrôlent bel et bien la réputation.
Configurer le SMTP dans Python
Récupérer les données
Connectez-vous à votre compte 2mail et récupérez-y votre serveur SMTP, votre nom d'utilisateur et votre mot de passe.
Compléter dans Python
Dans un projet Django, vous définissez les réglages EMAIL dans les settings : le backend SMTP comme backend e-mail, l'hôte du relais, le port 587, l'option STARTTLS activée, le nom d'utilisateur et le mot de passe, et une adresse d'expéditeur par défaut sur votre propre domaine. Si vous travaillez directement avec smtplib, vous vous connectez à l'hôte sur le port 587, vous appelez starttls, vous vous identifiez avec le nom d'utilisateur et le mot de passe, puis vous envoyez le message. Dans les deux cas, lisez les données depuis des variables d'environnement, pas depuis le code.
Authentifier le domaine
Veillez à ce que SPF, DKIM et DMARC soient correctement configurés pour votre domaine, afin que les destinataires puissent vérifier que le courrier vient bien de vous.
Tester
Envoyez un message de test vers une adresse chez un grand fournisseur et vérifiez qu'il arrive dans la boîte de réception et non dans les indésirables.
Les champs que Python demande
Chaque plateforme les nomme un peu différemment, mais il s'agit toujours des mêmes cinq champs. Les valeurs concrètes sont liées à votre compte et se trouvent dans votre compte 2mail — relevez-les à cet endroit, afin d'être certain d'utiliser les bonnes.
| Champ | Ce que vous indiquez |
|---|---|
| Serveur SMTP (host) | Le nom de serveur figurant dans votre compte 2mail. |
| Port | Le port correspondant au chiffrement que vous avez choisi ; votre compte indique lequel. |
| Chiffrement | TLS. N'envoyez jamais sans chiffrement — vos identifiants circuleraient sinon en clair sur le réseau. |
| Nom d'utilisateur | L'identifiant SMTP de votre compte 2mail. |
| Mot de passe | Le mot de passe correspondant. N'utilisez jamais le mot de passe de la boîte aux lettres d'un collaborateur. |
Les e-mails que Python envoie
Dès que le relais est configuré, tous ces messages passent par 2mail — vous ne devez pas les configurer un par un.
Pièges avec Python
Option TLS et port doivent correspondre
Django connaît deux réglages TLS distincts : un pour STARTTLS et un pour TLS dès le début. N'activez que celui pour STARTTLS, qui correspond au port 587. Les deux à la fois provoquent une erreur de configuration ; aucun des deux envoie votre identifiant en clair, ce qu'un relais refuse à juste titre.
Une connexion par série, pas par message
Un script qui ouvre une nouvelle connexion SMTP pour chacun de mille messages se comporte comme un attaquant. Ouvrez une connexion, envoyez la série, fermez. Django dispose pour cela d'une fonction qui envoie plusieurs messages sur une seule connexion.
Erreurs silencieuses dans les tâches de fond
Une exception dans une tâche cron disparaît dans un fichier journal que personne ne lit. Interceptez les erreurs d'envoi et signalez-les là où elles se voient — et connectez les webhooks de 2mail pour la livraison et les bounces, afin de voir aussi ce qui échoue après la remise.
Une autre plateforme ?
SMTP est un protocole standard : tout système qui parle SMTP — un CRM, un ERP, une application maison ou un serveur — peut envoyer via 2mail avec les mêmes cinq champs.