13.11. Créer un projet Django : envoyer des e-mails

Lors de la création d'un système avec Python et Django, l'une des fonctionnalités les plus utiles que vous puissiez implémenter est la possibilité d'envoyer des e-mails. Qu'il s'agisse d'informer les utilisateurs des mises à jour, de confirmer des abonnements ou de réinitialiser des mots de passe, l'envoi d'e-mails est un outil essentiel pour toute application Web. Dans ce chapitre, nous explorerons comment configurer Django pour envoyer des e-mails.

Configuration du serveur de messagerie

Pour envoyer des e-mails avec Django, vous avez besoin d'un serveur de messagerie SMTP. Django prend en charge de nombreux serveurs de messagerie tels que Gmail, SendGrid, Amazon SES et autres. Pour les besoins de ce didacticiel, nous allons utiliser Gmail.

Tout d'abord, vous devez configurer les paramètres de messagerie dans votre fichier settings.py. Voici un exemple de configuration de Gmail :

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_USE_TLS = Vrai EMAIL_HOST_USER = 'votremail@gmail.com' EMAIL_HOST_PASSWORD = 'votre mot de passe'

Les paramètres ci-dessus sont explicites. EMAIL_HOST et EMAIL_PORT sont les paramètres du serveur SMTP Gmail. EMAIL_USE_TLS est défini sur True car Gmail utilise TLS. EMAIL_HOST_USER et EMAIL_HOST_PASSWORD sont respectivement votre adresse e-mail et votre mot de passe Gmail.

Envoi d'e-mails

Une fois les paramètres de votre serveur de messagerie configurés, vous pouvez désormais envoyer des e-mails. Django fournit une fonction appelée send_mail pour envoyer des emails. Voici un exemple d'utilisation de la fonction send_mail :

depuis django.core.mail importer send_mail envoyer un mail( 'Sujet du courriel', 'Corps de l'e-mail', 'de@exemple.com', ['à@exemple.com'], fail_silently=Faux, )

La fonction send_mail accepte cinq paramètres. Le premier est le sujet de l’e-mail. Le second est le corps de l’e-mail. Le troisième est l'adresse e-mail de l'expéditeur. Le quatrième est une liste d'adresses e-mail des destinataires. Le dernier paramètre, fail_silently, est un booléen. Si elle est définie sur True, la fonction ne générera pas d'exceptions si l'e-mail ne peut pas être envoyé. Si False, la fonction lèvera des exceptions si l'e-mail ne peut pas être envoyé.

Envoyer des e-mails avec HTML

Django prend également en charge l'envoi d'e-mails HTML. Pour envoyer un email avec HTML, vous pouvez utiliser la fonction EmailMessage. Voici un exemple d'utilisation de la fonction EmailMessage pour envoyer un e-mail en HTML :

à partir de django.core.mail importer EmailMessage email = EmailMessage( 'Bonjour', "Le corps va ici", 'de@exemple.com', ['à@exemple.com'], ['bcc@exemple.com'], réponse_to=['un autre@exemple.com'], headers={'ID-message' : 'foo'}, ) email.send()

La fonction EmailMessage accepte plusieurs paramètres. Les quatre premiers sont identiques à la fonction send_mail. Le cinquième paramètre est une liste d'adresses e-mail en BCC. Le sixième paramètre est une liste d'adresses e-mail pour la réponse. Le dernier paramètre est un dictionnaire d'en-têtes supplémentaires pour l'e-mail.

Pour ajouter du HTML à un e-mail, vous pouvez utiliser la méthode content_subtype de l'objet EmailMessage. Voici un exemple :

email = EmailMessage('Bonjour', 'Le corps va ici', 'from@example.com', ['to@example.com']) email.content_subtype="html" email.send()

J'espère que ce chapitre vous a permis de bien comprendre comment envoyer des e-mails avec Django. Dans le chapitre suivant, nous explorerons comment intégrer Django aux bases de données.

Répondez maintenant à l’exercice sur le contenu :

Quelle fonction Django est utilisée pour envoyer des emails et quels sont ses paramètres ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Création d'un projet Django : intégration avec les API

Page suivante de lebook gratuit :

70Création d'un projet Django : intégration avec les API

2 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte