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