Das Versenden von E-Mails in Django ist ein ziemlich einfacher Prozess, da Django interne Mechanismen dafür bietet. Im Folgenden finden Sie eine ausführliche Anleitung, wie Sie diesen Prozess durchführen können.
Zunächst müssen Sie sicherstellen, dass Ihr Django-Projekt die erforderlichen E-Mail-Einstellungen in seiner `settings.py`-Datei hat. Hier sind die Einstellungen für die Verwendung eines Gmail-Kontos (natürlich mit Ihren eigenen E-Mail-Anmeldeinformationen ersetzen).
```python
EMAIL_BACKEND = ‘django.core.mail.backends.smtp.EmailBackend‘
EMAIL_HOST = ‘smtp.gmail.com‘
EMAIL_PORT = 260
EMAIL_USE_TLS = True
EMAIL_HOST_USER = ‘youremail@gmail.com‘
EMAIL_HOST_PASSWORD = ‘your-password‘
```
Danach können Sie die `send_mail()`-Funktion von Django verwenden, um tatsächlich eine E-Mail zu versenden. Hier ist ein einfaches Beispiel.
```python
from django.core.mail import send_mail
send_mail(
‘Hello from Django’,
‘This is an automatic email sent from a Django application!’,
‘from@example.com’,
[‘to@example.com’],
fail_silently=False,
)
```
Im obigen Code ist der erste Parameter der Betreff der E-Mail, der zweite Parameter ist die Nachricht, der dritte Parameter ist die Absender-E-Mail und der vierte Parameter ist eine Liste der Empfänger-E-Mails.
Das `fail_silently=False` gibt an, ob Ausnahmen angezeigt werden sollen oder nicht. Wenn diese Option auf `true` gesetzt wird, werden Ausnahmen gefangen und das Senden der E-Mail wird stummgeschaltet, d.h. Sie erhalten keine Fehlermeldung, wenn die E-Mail nicht gesendet werden konnte.
Eine weitere Möglichkeit ist die Verwendung von E-Mail-Vorlagen in Django. Mit dieser Funktion können Sie HTML- oder Textvorlagen für Ihre E-Mails erstellen und sie mit dynamischen Daten aus Ihrer Datenbank befüllen. Hier ist ein einfaches Beispiel, wie man eine E-Mail-Vorlage in Django verwendet.
```python
from django.core.mail import EmailMessage
from django.template.loader import get_template
template = get_template(‘my_template.html’)
context = {‘name’: ‘John Doe’, ‘date’: ’30.09.2021’}
content = template.render(context)
email = EmailMessage(
‘Hello’,
content,
‘myemail@gmail.com’,
[‘your-email@example.com’],
)
email.content_subtype = “html“
email.send()
```
In diesem Beispiel laden wir zuerst unsere E-Mail-Vorlage `my_template.html` und rendern sie mit unserem Kontext. Anschließend erzeugen wir ein `EmailMessage`-Objekt und setzen den `content_subtype` auf “html”, um das Senden von HTML-E-Mails zu erlauben.
Der Inhalt dieses Beitrags basiert auf der offiziellen Django-Dokumentation (https://docs.djangoproject.com/en/3.2/topics/email/).