Ici, nous allons vous expliquer comment envoyer un email avec Django. Il peut être utilisé pour créer un formulaire de demande.
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
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.
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