Envoyer des e-mails avec Django

introduction

Ici, nous allons vous expliquer comment envoyer un email avec Django. Il peut être utilisé pour créer un formulaire de demande.

Paramètres par défaut

Tout d'abord, écrivez les paramètres relatifs à la messagerie dans settings.py. Voici un exemple d'utilisation de Gmail.

settings.py


EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD =Mot de passe pour l'application
EMAIL_PORT = 587
EMAIL_USE_TLS = True

Définition de l'objet et de la destination de l'e-mail

Ici, dans le formulaire de demande Définissez une fonction d'envoi de courrier dans forms.py.

forms.py


from django import forms
from django.conf import settings
from django.core.mail import BadHeaderError, EmailMessage
from django.http import HttpResponse


def send_email(self):
        subject = 'Nous contacter:' + self.cleaned_data['title']
        name = self.cleaned_data['name']
        email = self.cleaned_data['email']
        from_email = '{name} <{email}>'.format(name=name, email=email)
        message = self.cleaned_data['body']
        recipient_list = [settings.EMAIL_HOST_USER]
        email_message = EmailMessage(subject, message, from_email, recipient_list, reply_to=[email])
        try:
            email_message.send()
        except BadHeaderError:
            return HttpResponse('Un en-tête non valide a été détecté.')

ʻSi vous ne définissez pas reply_to lors de la création d'une instance EmailMessage`, vous ne pourrez pas répondre par e-mail car vous ne connaissez pas l'adresse e-mail de la personne qui a fait la demande, alors assurez-vous de la saisir.

Résumé

Ici, j'ai expliqué les paramètres requis lors de l'envoi d'un email avec Django. Il peut être appliqué à d'autres que le formulaire de demande.

Recommended Posts

Envoyer des e-mails avec Django
Remarque: envoyer un e-mail avec Django
Envoyer des e-mails par Python
Envoyer du courrier japonais avec Python3
[Automation] Envoyer des e-mails Outlook avec Python
[Python] Envoyez des e-mails avec Outlook
Envoyez facilement des e-mails avec Gmail avec Django
Envoyer des e-mails via gmail avec Python 3.4.3.
Internationalisation avec Django
[Python] Envoyer un e-mail
[Python] Envoyer un e-mail
CRUD avec Django
mail html avec image à envoyer avec python
Envoyer un e-mail avec Amazon SES + Python
Authentifier Google avec Django
Django 1.11 a démarré avec Python3.6
Télécharger des fichiers avec Django
Résumé du développement avec Django
Sortie PDF avec Django
Sortie Markdown avec Django
Utiliser Gentelella avec Django
Envoyez un email à l'adresse de Spushi avec python
Twitter OAuth avec Django
Premiers pas avec Django 1
Téléchargement de fichiers avec django
Utilisez LESS avec Django
J'ai essayé d'envoyer un e-mail de fin d'inscription depuis Gmail avec django.
Valider l'e-mail avec Python
La mutualisation mécanise avec Django
Utiliser MySQL avec Django
Envoyer un e-mail avec Excel en pièce jointe en Python
Django à partir d'aujourd'hui
Premiers pas avec Django 2
Envoyer un e-mail avec un utilisateur autre que EMAIL_HOST_USER écrit dans les paramètres de django
Faites Django avec CodeStar (Python3.6.8, Django2.2.9)
Lancez-vous avec Django! ~ Tutoriel ⑤ ~
Environnement de site Web de configuration minimale avec django
Créer une API avec Django
Faites Django avec CodeStar (Python3.8, Django2.1.15)
Déployer Django sans serveur avec Lambda
Python3 + Django ~ Mac ~ avec Apache
Premiers pas avec Python Django (1)
Créer une page d'accueil avec django
Lancez-vous avec Django! ~ Tutoriel ④ ~
Premiers pas avec Python Django (4)
Créer une application Web avec Django
Premiers pas avec Python Django (3)
Combinez Fast API avec Django ORM
Envoyer des e-mails avec Python (Outlook)
Lancez-vous avec Django! ~ Tutoriel ⑥ ~
Utilisez Django pour enregistrer les données de tweet
Effectuer le cryptage AES avec DJango
Introduction à Python Django (6)
Envoyer du courrier à l'aide du smtplib de Python
Combinez deux images avec Django
Premiers pas avec Django avec PyCharm
Web en temps réel avec les chaînes Django
Suppression de double envoi avec Django
Framework Django REST avec Vue.js
Utilisez prefetch_related commodément avec Django
Premiers pas avec Python Django (5)