logo oujood
🔍

Envoyer des emails avec Django

Communiquez avec vos utilisateurs en automatisant l'envoi de courriels depuis votre application.

OUJOOD.COM

Envoyer un mail peut paraître simple, mais entre votre code et la boîte de réception de l'utilisateur, il y a tout un monde de configuration. Que ce soit pour confirmer une inscription ou réinitialiser un mot de passe, Django propose une interface unifiée qui s'adapte à n'importe quel fournisseur de services (Gmail, SendGrid, Mailgun, etc.).

Configuration du backend SMTP

Pour que Django puisse envoyer des messages, vous devez lui indiquer quel serveur utiliser. Tout se passe dans le fichier settings.py. Je vous suggère de ne jamais écrire vos mots de passe en clair ici, mais d'utiliser des variables d'environnement pour plus de sécurité.

  📋 Copier le code

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.votre-fournisseur.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'votre-email@domaine.com'
EMAIL_HOST_PASSWORD = 'votre-mot-de-passe'

Utiliser la fonction send_mail

Une fois la configuration terminée, l'envoi se résume à une seule fonction. Django s'occupe d'ouvrir la connexion, d'envoyer les données et de refermer proprement le tunnel. C'est propre et efficace.

  📋 Copier le code

from django.core.mail import send_mail

def envoyer_bienvenue(email_utilisateur):
    send_mail(
        'Bienvenue sur notre plateforme',
        'Merci de nous avoir rejoint !',
        'contact@monsite.com',
        [email_utilisateur],
        fail_silently=False,
    )

Le backend console pour le développement

Pendant que vous développez, vous n'avez pas forcément envie d'envoyer de vrais emails à chaque test. Django a prévu le coup avec le backend console. Au lieu de partir sur le web, le contenu du mail s'affiche directement dans votre terminal. C'est un gain de temps précieux pour vérifier le rendu de vos messages sans polluer votre boîte de réception.

Pour protéger les accès à votre serveur SMTP, il est indispensable de ne pas laisser traîner vos identifiants dans votre code source. C'est ce que nous allons apprendre à gérer avec les variables d'environnement Django.

Par carabde | Mis à jour le 08/05/2026