Hier erklären wir Ihnen, wie Sie eine E-Mail mit Django senden. Es kann verwendet werden, um ein Anfrageformular zu erstellen.
Schreiben Sie zuerst die Mail-bezogenen Einstellungen in settings.py
.
Das Folgende ist ein Beispiel für die Verwendung von Google Mail.
settings.py
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD =Passwort für die App
EMAIL_PORT = 587
EMAIL_USE_TLS = True
Hier im Anfrageformular
Definieren Sie eine Funktion zum Senden von E-Mails in 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 = 'Kontaktiere uns:' + 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('Ein ungültiger Header wurde erkannt.')
Wenn Sie nicht "reply_to" festlegen, wo Sie die "EmailMessage" -Instanz erstellen, kennen Sie die E-Mail-Adresse der Person, die die Anfrage gestellt hat, nicht und können nicht per E-Mail antworten. Geben Sie sie daher unbedingt ein.
Hier habe ich die Einstellungen erklärt, die beim Senden einer E-Mail mit Django erforderlich sind. Es kann auf andere als das Anfrageformular angewendet werden.