国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
Verst?ndnis des SMTP -Servers und des einfachen E -Mail -Transfer -Protokolls
E -Mail -Backend
E -Mail -Host
E -Mail -Port
E -Mail Verwenden Sie TLS
E -Mail -Host -Benutzer
E -Mail -Host -Passwort
Einrichten von Google Mail SMTP -Server mit App -Kennwort
Warum Appkennw?rter verwenden?
Schritt 1: 2-Schritt-überprüfung
Schritt 2: Generieren Sie ein App -Passwort
Verwenden von Django Environ, um E -Mail -Backend -Anmeldeinformationen zu sichern
Endlich kommen wir zum saftigen Teil des Artikels! Es ist Zeit, Ihre erste E -Mail an Django zu senden.
Kontaktansichten
Wenden Sie URLs
Schreibvorlagen
FAQs auf Django E -Mail mit SMTP -Server
Wie verwalte ich sensible E -Mail -Anmeldeinformationen sicher?
Heim Technologie-Peripherieger?te IT Industrie So senden Sie E -Mail mit Django mit SMTP -Server

So senden Sie E -Mail mit Django mit SMTP -Server

Feb 08, 2025 am 10:58 AM

So senden Sie E -Mail mit Django mit SMTP -Server

Haben Sie jemals Probleme mit der Einrichtung einer E -Mail -Integration in Ihre Django -Projekte gek?mpft? Unabh?ngig davon, ob es sich

In diesem Tutorial werden wir mithilfe von Django mit praktischen, Schritt-für-Schritt-Anweisungen E-Mails senden. Wir werden behandelt, wie Sie Django SMTP -Verbindungen konfigurieren, ein Passwort für Ihren E -Mail -Anbieter einrichten und wie Sie E -Mails über die Django -Shell senden. Wir werden uns auch ansehen, wie Sie ein Kontaktformular für Ihre Django -App einrichten, mit der Ihre Kunden Sie kontaktieren k?nnen.

Key Takeaways

    SMTP -Einstellungen konfigurieren: Senden Sie Django -E -Mail -Senden durch Konfigurieren der Datei "Einstellungen".
  • sichere Anmeldeinformationen mit Django Environ: Verwenden Sie die Django -Umgebung, um sensible Anmeldeinformationen wie E -Mail_Host_user und E -Mail_Host_Password über Umgebungsvariablen sicher zu verwalten, wodurch die h?rtliche Kodierung von Anmeldeinformationen im Quellcode verhindern wird.
  • app-spezifische Kennw?rter generieren: Aktivieren Sie bei der Verwendung von Google Mail die 2-stufige überprüfung und erstellen Sie ein App-Kennwort, um das Senden von Django-Mails sicher zu authentifizieren, anstatt sich auf Ihr prim?res Kennwort zu verlassen.
  • Senden Sie E-Mails mit send_mail: Verwenden Sie die integrierte Send_mail-Funktion von Django, um E-Mails mit Django aus der Django-Shell, Ansichten oder wiederverwendbaren Helferfunktionen zu senden, wobei Einstellungen für die optimierte Konfiguration verwendet werden.
  • Automatisierte Kontaktformulare implementieren: Erstellen Sie ein automatisiertes Kontaktformular mit Django-Formularen und integrieren Sie die Funktionen von E-Mail-Sendungen für die nahtlose Behandlung von Benutzeranfragen.
  • E-Mail-Funktionalit?t Test: überprüfen Sie die E-Mail-Sendungslogik mit Unit-Tests und verwenden Sie Tools wie MailHog oder Konsolen-E-Mail-Backend für sichere Entwicklungstests.
  • Best Practices folgen: Stellen Sie sicher, dass eine sichere und effiziente E -Mail -Zustellung unter Verwendung der TLS -Verschlüsselung, der ordnungsgem??en Authentifizierung und modularen E -Mail -Funktionen zur Wiederverwendbarkeit verwendet wird.
  • Die meisten Webanwendungen verwenden E -Mails, um wichtige Vorg?nge zu verwalten, z. B. das Zurücksetzen von Kennw?rtern, die Kontoaktivierung, das Empfangen von Kundenfeedback, das Senden von Newslettern und Marketingkampagnen. W?hrend Google Mail für Tests oder kleine Projekte arbeitet, sollten Produktionswebsites dedizierte E -Mail -Dienste wie AWS SES, SENDGRID oder Mailgun verwenden.

Wenn Sie jedoch die Kosten und die Bemühungen der Verwendung eines dedizierten E -Mail -Dienstes vergleichen, kann das Senden von E -Mails mit Ihrer pers?nlichen E -Mail für kleine oder Testprojekte angemessener sein. Wir werden diesen Ansatz hier verfolgen, um die Dinge einfach zu halten.

Hinweis

: Es ist keine gute Idee, Ihren pers?nlichen E -Mail -Service für Ihre Produktionswebsite zu verwenden. Sie k?nnen mehr über Google Mail -Senden von Beschr?nkungen erfahren oder sich auf die Einschr?nkungen Ihres E -Mail -Anbieters beziehen.

Hinweis: Der vollst?ndige Code für dieses Tutorial ist auf GitHub verfügbar.

Verst?ndnis des SMTP -Servers und des einfachen E -Mail -Transfer -Protokolls

SMTP (oder das einfache Mail -Transfer -Protokoll) ist eine Reihe von Regeln, um festzustellen, wie E -Mails von Absendern an Empf?nger übertragen werden. SMTP -Server verwenden dieses Protokoll, um ausgehende E -Mails zu senden und weiterzugeben. (Beachten Sie, dass andere Protokolle bestimmen, wie E -Mails

erhalten werden.)

Ein SMTP -Server verfügt immer über eine eindeutige Adresse und einen bestimmten Port zum Senden von Nachrichten. In den meisten F?llen ist 587. Wir werden sehen, wie der Port in Django -E -Mail -Senden relevant ist.

Für dieses Beispiel werden wir den SMTP -Server von Google Mail verwenden, wobei:
  • Adresse: SMTP.gmail.com
  • Port: 587

Lassen Sie uns nun sehen, wie wir E -Mails mit Django senden k?nnen.

Erstellen eines Django -Projekts

Jedes Django -Projekt sollte eine virtuelle Umgebung haben, da wir die Projektabh?ngigkeiten nicht durcheinander bringen m?chten. Um eine zu erstellen, führen Sie Folgendes aus:
python <span>-m venv .venv</span>

Hinweis: Wenn Sie mit virtuellen Umgebungen nicht vertraut sind, überprüfen Sie unsere Python Virtual Environments Guide .

Der obige Befehl erstellt eine virtuelle Umgebung mit dem Namen .venv. Um diese virtuelle Umgebung zu aktivieren, k?nnen Sie Folgendes verwenden:
<span># CMD
</span>.venv<span>\Scripts\activate
</span>
<span># Power Shell
</span>.venv<span>\Scripts\Activate.ps1
</span>
<span># WSL
</span><span>source .venv/bin/activate</span>

Da Django ein Paket von Drittanbietern ist, müssen Sie es mit PIP installieren:
pip <span>install django</span>

Dies wird die neueste Version von Django installiert, die Sie bei Pip Freeze überprüfen k?nnen.

Um ein Django-Projekt zu erstellen, rufen Sie das Befehlszeilen-Dienstprogramm django-admin an:
django-admin startproject EmailProject

Mit dem obigen Befehl erstellen Sie ein Django -Projekt mit dem Namen EmailProject, aber Sie k?nnen das Projekt mit jedem gewünschten Namen erstellen. Geben Sie nun in das Projektverzeichnis ein und führen Sie den Server aus:
<span>cd EmailProject
</span>python manage.py runserver
So senden Sie E -Mail mit Django mit SMTP -Server

Besuchen Sie nach dem Ausführen des Django -Servers http: // localhost: 8000 in Ihrem Browser. Sie sehen eine automatisch generierte Seite mit den neuesten Django-Versionsnotizen.
So senden Sie E -Mail mit Django mit SMTP -Server

Django -E -Mail -Backend für SMTP

konfigurieren

Das E -Mail -Backend ist der Mechanismus, um E -Mails mit Django zu senden. Standardm??ig verwendet Django django.core.mail.backends.smtp.emailbackend, sodass eine Verbindung zu einem SMTP -Server hergestellt und E -Mails gesendet werden k?nnen. Abh?ngig von der Umgebung (Entwicklung oder Produktion) k?nnen Sie ein anderes E -Mail -Backend für Ihren Anforderungen ausw?hlen.

Sie müssen die Einstellungsdatei vor dem Senden von E -Mails ?ndern. Suchen wir diese Datei also mit dem folgenden Befehl:

Hinweis: Der Einfachheit halber verwenden wir nur Unix -Systembefehle (macOS oder Linux).
python <span>-m venv .venv</span>

Der Baumbefehl gibt die Dateistruktur eines Verzeichnisses aus. In diesem Fall erhalten wir, da wir ihm keinen bestimmten Verzeichnispfad geben, etwas ?hnliches wie das Folgende, wenn wir uns im Stammordner des Projekts befinden:

<span># CMD
</span>.venv<span>\Scripts\activate
</span>
<span># Power Shell
</span>.venv<span>\Scripts\Activate.ps1
</span>
<span># WSL
</span><span>source .venv/bin/activate</span>

Die Datei, die wir st?ndig durch dieses Tutorial ?ndern, sind die Einstellungen.Py im Ordner E -MailProject. Es enth?lt die gesamte Projektkonfiguration, die Sie ben?tigen, und k?nnen benutzerdefinierte Variablen festlegen. Wie die Django-Dokumente sagen: ?Eine Einstellungsdatei ist nur ein Python-Modul mit Variablen auf Modulebene“.

Schauen wir uns die Einstellungen an, die für das Senden einer E -Mail mit Django erforderlich sind. ?ffnen Sie die Datei von EmailProject/Settings.py und fügen Sie die folgenden Einstellungen unten in der Datei ein:

pip <span>install django</span>

Lassen Sie uns den obigen Code aufschlüsseln, indem Sie jede dieser Einstellungen analysieren.

E -Mail -Backend

Die Einstellung von Email_backend deklariert das Backend In unserem Django -Projekt wird eine Verbindung zum SMTP -Server hergestellt.

Diese Variable zeigt auf die SMTP.Emailbackend -Klasse, die alle Parameter empf?ngt, die zum Senden einer E -Mail erforderlich sind. Ich empfehle dringend, dass Sie sich den Klassenkonstruktor direkt im Django -Quellcode ansehen. Sie werden überrascht sein, wie lesbar dieser Code ist.

Hinweis: Obwohl diese Klasse der Standard -E -Mail -Backend ist, gilt es als gute Praxis, in den Django -Einstellungen explizit zu sein.

Alle anderen E -Mail -Einstellungen basieren auf dem Konstruktor dieser E -Mail -Backend -Klasse.

E -Mail -Host

Die Einstellung von Email_host bezieht sich auf die SMTP -Serverdom?ne, die Sie verwenden. Dies h?ngt von Ihrem E -Mail -Anbieter ab. Im Folgenden finden Sie eine Tabelle mit dem SMTP -Server -Host, der drei gemeinsamen Anbietern entspricht:

E-Mail-Anbieter SMTP Server Host gmailsmtp.gmail.comoutlook/hotmailsmtp-mail.outlook.comyahoosmtp.mail.yahoo.com

lassen wir diese Einstellung vorerst leer, da wir sp?ter eine .EnV-Datei verwenden, um hartcodierte sensible Schlüssel oder Konfigurationen pro Standort zu vermeiden. Sie sollten niemals Anmeldeinformationen direkt in den Code einstellen. Wir werden Django Environ verwenden, um dieses Problem zu l?sen.

E -Mail -Port

Die Einstellung von Email_port muss auf 587 festgelegt werden, da es sich um den Standardport für die meisten SMTP -Server handelt. Dies gilt für pers?nliche E -Mail -Anbieter. Dieser Port wird zusammen mit der TLS -Verschlüsselung verwendet, um die Sicherheit des E -Mail -Sendens zu gew?hrleisten.

E -Mail Verwenden Sie TLS

Transport Layer Security (TLS) ist ein Sicherheitsprotokoll, das im Internet verwendet wird, um die Kommunikation zwischen Web -Apps (DJango) und Servern (SMTP -Server) zu verschlüsseln.

Ursprünglich haben wir die Variable E -Mail_USE_TLS auf true gesetzt. Dies bedeutet, dass Django die Transport Layer Security verwendet, um eine Verbindung zum SMTP -Server herzustellen und E -Mails zu senden. (Für pers?nliche E -Mail -Anbieter ist es obligatorisch.)

E -Mail -Host -Benutzer

Die Einstellung von E -Mail_host_user ist Ihre pers?nliche E -Mail -Adresse. Lassen Sie es vorerst leer, da wir Django-Eniron verwenden, um all diese Anmeldeinformationen einzurichten.

E -Mail -Host -Passwort

Die Einstellung von E -Mail_host_password ist das App -Kennwort, das Sie aus Ihrem E -Mail -Konto erhalten - der Vorgang, den wir direkt nach diesem Abschnitt durchführen. Gleiche Geschichte: Lassen Sie diese Einstellung leer, da wir sp?ter Umgebungsvariablen verwenden.

Für andere Anbieter k?nnen Sie die Einstellungen entsprechend anpassen. Zum Beispiel:

Outlook -Konfiguration:

python <span>-m venv .venv</span>

Yahoo -Konfiguration:

<span># CMD
</span>.venv<span>\Scripts\activate
</span>
<span># Power Shell
</span>.venv<span>\Scripts\Activate.ps1
</span>
<span># WSL
</span><span>source .venv/bin/activate</span>

Einrichten von Google Mail SMTP -Server mit App -Kennwort

Da "weniger sichere Apps" von Google veraltet sind, besteht die ordnungsgem??e und sichere M?glichkeit, eine Verbindung zum Google Mail -Konto für das Senden von E -Mails herzustellen, die Verwendung von App -Passw?rtern. App-Passw?rter sind nur verfügbar, wenn Sie eine 2-Schritt-überprüfung für Ihr Google-Konto aktivieren.

Warum Appkennw?rter verwenden?

  1. sichere Alternative: Anstatt Ihr prim?res Kennwort zu teilen, bieten App -Kennw?rter für bestimmte Anwendungen eingeschr?nkter Zugriff.
  2. funktioniert mit SMTP: App -Passw?rter entsprechen den Sicherheitsanforderungen von Google Mail für SMTP -Zugriff.
  3. obligatorisch für die 2-stufige überprüfung: Sobald die 2-stufige überprüfung aktiviert ist, k?nnen Appkennw?rter die einzige M?glichkeit haben, externe Apps eine Verbindung herzustellen.

Schritt 1: 2-Schritt-überprüfung

aktivieren
  1. Gehen Sie zu Ihrem Google -Konto: https://myaccount.google.com/.
  2. Navigieren Sie im Menü links zur Sicherheit.
  3. scrollen Sie zum Abschnitt "Wie Sie sich bei Google anmelden".
  4. Klicken Sie auf "2-Schritt-überprüfung" und befolgen Sie die Anweisungen auf dem Bildschirm:
    • Verwenden Sie Ihre Telefonnummer oder eine Authenticator-App, um eine 2-stufige überprüfung einzurichten.
    • überprüfen Sie Ihr Setup mit dem an Ihr Ger?t gesendeten Code.
So senden Sie E -Mail mit Django mit SMTP -Server

Schritt 2: Generieren Sie ein App -Passwort

  1. Sob
  2. Geben Sie dort den Namen für das App -Passwort ein und klicken Sie auf Erstellen.
So senden Sie E -Mail mit Django mit SMTP -Server
    Dann gibt es ein Pop-up-Modal mit einem 16-Charakter-App-Passwort. Stellen Sie sicher, dass Sie es irgendwo speichern, da es nur einmal angezeigt wird.
So senden Sie E -Mail mit Django mit SMTP -Server
Wenn Sie andere E -Mail -Anbieter verwenden, lesen Sie die folgenden Anleitungen:

  • Yahoo App Passwort
  • Outlook oder Hotmail App Passwort

Verwenden von Django Environ, um E -Mail -Backend -Anmeldeinformationen zu sichern

Auch wenn Sie nur E -Mails in der Entwicklung senden, sollten Sie keine Passw?rter direkt in den Quellcode schreiben. Dies wird noch wichtiger, wenn ein Versionskontrollsystem zusammen mit GitHub verwendet wird, um Ihr Projekt zu hosten. Sie m?chten nicht, dass Personen auf Ihre Daten zugreifen.

Lassen Sie uns sehen, wie wir dies verhindern k?nnen, indem wir Django-Eniron verwenden.

Erstellen einer .Env -Datei im Verzeichnis von EmailProject (wobei die Datei Einstellungen.Py -Datei befindet) mit dem folgenden Befehl:

python <span>-m venv .venv</span>

?ffnen Sie nun diese .Env -Datei und geben Sie die folgenden Schlüssel -Wert -Paare ein:

<span># CMD
</span>.venv<span>\Scripts\activate
</span>
<span># Power Shell
</span>.venv<span>\Scripts\Activate.ps1
</span>
<span># WSL
</span><span>source .venv/bin/activate</span>

den Inhalt dieser Datei aufschlüsseln:

  • E -Mail_host: Die SMTP -Serveradresse Ihres E -Mail -Anbieters. In der obigen E -Mail -Hosttabelle finden Sie eine schnelle Anleitung. In diesem Fall verwende ich SMTP.gmail.com, die Google Mail SMTP -Adresse.
  • E -Mail_HOST_USER: Ihre E -Mail -Adresse.
  • E -Mail_HOST_PASSWORD: Das gerade generierte App -Passwort. Denken Sie daran, dass es keine R?ume enth?lt.
  • recicent_address: Die E -Mail -Adresse, in der Sie die Nachrichten erhalten. Dies ist eine benutzerdefinierte Einstellung, die wir sp?ter erstellen, um alle E -Mails an denselben Empf?nger zu senden.

Um diese Umgebungsvariablen zu nutzen, müssen wir Django-Eniron installieren:

pip <span>install django</span>

Hinweis: Stellen Sie sicher, dass Ihre virtuelle Umgebung aktiviert ist.

?ffnen Sie nun die Einstellungen.

django-admin startproject EmailProject
Erstens importieren wir das Environ -Paket oben in der Einstellungsdatei. Denken Sie daran, dass alle Importe am Anfang sein sollten. Anschlie?end erstellen wir eine Env -Variable, die alle Schlüssel -Wert -Paare enthalten, die auf dem .Env.

verfügbar sind

Die Anweisung Env ("Schlüssel") bedeutet, dass wir den Wert dieses Schlüssels nachschlagen. Stellen Sie vor dem Fahren sicher, dass Sie Ihre .Env -Datei eingerichtet haben. Andernfalls erhalten Sie, wenn eine Umgebungsvariable nicht festgelegt ist

Hinweis: recicent_address ist eine benutzerdefinierte Einstellung, mit der wir E -Mails an eine Adresse senden k?nnen, auf die wir zugreifen k?nnen.

Vergessen Sie nicht, die .Env -Datei in Ihr .gitignore aufzunehmen, wenn Sie Git und GitHub verwenden. Sie k?nnen dies einfach tun, indem Sie es ?ffnen und die folgende Zeile hinzufügen:

1. Senden von E -Mails mit der Django Shell
<span>cd EmailProject
</span>python manage.py runserver

Endlich kommen wir zum saftigen Teil des Artikels! Es ist Zeit, Ihre erste E -Mail an Django zu senden.

?ffnen Sie ein Terminal, aktivieren Sie die virtuelle Umgebung und führen Sie:

aus.

Erstellt eine Shell mit allen für uns bereits konfigurierten Django -Einstellungen. Fügen Sie in dieser brandneuen Shell den folgenden Code ein:
tree

Wir k?nnen auch einen Einzeiler machen, ohne die Argumente anzugeben:
├── EmailProject
│   ├── asgi.py
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

1 directory, 6 files
python <span>-m venv .venv</span>

Lassen Sie uns den obigen Code aufschlüsseln:

  • Wir importieren die Django send_mail -Funktion.
  • Dann importieren wir das Einstellungsobjekt, das alle globalen Einstellungen und die Einstellungen pro Standort enth?lt (die in der Einstellungsdatei.Py-Datei).
  • Schlie?lich übergeben wir alle ben?tigten Argumente an die Funktion "send_mail". Diese Funktion gibt die Anzahl der gesendeten E -Mails zurück, in diesem Fall 1.

Beachten Sie, wie wir das Einstellungsobjekt verwenden, um die von _email (die E -Mail -Adresse, mit denen Sie E -Mails zu senden) und die Empfecent.List (die benutzerdefinierte Einstellung von recicent_address, die wir im .Env definiert haben).

).

Wenn ich nun meinen Posteingang überprüfe - wenn ich die Umgebungsvariable recicent_address in meine E -Mail -Adresse festlegt -, werde ich die von Django gesendete E -Mail -Nachricht erhalten.
So senden Sie E -Mail mit Django mit SMTP -Server

asynchrones E -Mail -Senden

In Django 4.x wird das Senden von Asynchronen -E -Mails unterstützt, um die Leistung zu verbessern. Dies ist nützlich für Websites mit hohem Verkehr oder beim Senden von Massen-E-Mails.

So k?nnen Sie eine E -Mail asynchron senden:
<span># CMD
</span>.venv<span>\Scripts\activate
</span>
<span># Power Shell
</span>.venv<span>\Scripts\Activate.ps1
</span>
<span># WSL
</span><span>source .venv/bin/activate</span>

asynchrones E -Mail -Senden ist nützlich in Szenarien wie:
  • Nicht blockierende Vorg?nge, bei denen das Senden einer E-Mail keine Benutzeranfragen verz?gern sollte.
  • Senden von Bulk-E-Mails (Verwenden Sie eine Task-Warteschlange wie Sellerie für Produktionsma?st?be).

Hinweis: W?hrend Django asynchrone E-Mail unterstützt, verwenden Sie für Massen-E-Mails im Produktionsma?stab eine Hintergrundaufgabe-Warteschlange wie Sellerie oder Django-Q für echte nicht blockierende Operationen.

2. Erstellen Sie ein automatisiertes Kontaktformular mit Django

In diesem Abschnitt erstellen wir ein automatisiertes Kontaktformular mit Django-Formularen und der integrierten Send_mail-Funktion. Wir erstellen auch eine benutzerdefinierte Funktion send () innerhalb des Kontaktformulars, damit sie einfacher in den Ansichten implementieren k?nnen.

Beginnen wir zun?chst die Kontakt -App. Geben Sie das Projekt Root Directory ein - wo sich verwaltet.py befindet - und laufen Sie:
pip <span>install django</span>

Installieren Sie es dann in Ihrer Variablen für installed_apps in der Datei von EmailProject/Settings.py:
django-admin startproject EmailProject

Bevor Sie mit der Kontakt -App voranschreiten, konfigurieren wir die Urlpattern in der E -MailProject/urls.py -Datei. Importieren Sie dazu die Funktion django.urls.include und fügen Sie die Kontakt -URLs in das Gesamtprojekt auf. Mach dir keine Sorge; Wir konfigurieren die Kontakt -URLs sp?ter:
<span>cd EmailProject
</span>python manage.py runserver

Kontaktformular

Geben Sie den Ordner der Kontakt -App ein und erstellen Sie eine Form.Py -Datei. Es ist eine gute Praxis, alle Ihre Formulare in einer Form.Py -Datei zu definieren, aber sie ist nicht obligatorisch. Aus diesem Grund fasst Django diese Datei standardm??ig nicht ein. Sie k?nnen die Formsdatei mit den folgenden Befehlen erstellen:
tree

?ffnen Sie die gerade erstellte Datei und erstellen Sie die folgenden Importe:
python <span>-m venv .venv</span>

Das Django -Formmodul bietet uns alle erforderlichen Klassen und Felder, um unser Kontaktformular zu erstellen. Noch einmal importieren wir das Einstellungsobjekt und die Funktion "send_mail", um die E -Mails zu senden.

Unser Kontaktformular enth?lt mehrere Felder und verwendet zwei benutzerdefinierte Methoden: get_info (), die die von den Benutzer bereitgestellten Informationen formatieren und die E-Mail-Nachricht senden. Sehen wir uns in Code implementiert:

<span># CMD
</span>.venv<span>\Scripts\activate
</span>
<span># Power Shell
</span>.venv<span>\Scripts\Activate.ps1
</span>
<span># WSL
</span><span>source .venv/bin/activate</span>

Diese Klasse ist riesig, also lass uns aufschlüsseln, was wir in jedem Teil tun. Erstens definieren wir vier Felder, die zum Senden der E -Mail -Nachricht erforderlich sind:

  • Name und Anfrage sind Charfelder, die den Namen und den Grund der Kontaktnachricht darstellen.
  • E -Mail ist ein E -Mail -Feld, das die E -Mail -Adresse der Person darstellt, die versucht, Sie zu kontaktieren. Beachten Sie, dass die E -Mail nicht von der E -Mail -Adresse des Benutzers gesendet wird, sondern an der E -Mail -Adresse, die Sie für das Senden von E -Mails im Django -Projekt festgelegt haben.
  • Die Nachricht ist ein weiteres Charfield, au?er dass wir das Textbereich -Widget verwenden. Dies bedeutet, dass es beim Anzeigen des Formulars ein
  • macht

Auf dem Weg zu den benutzerdefinierten Methoden verwenden wir nur die Get_info -Methode, um die Informationen des Benutzers zu formatieren und zwei Variablen zurückzugeben: Betreff, das nichts anderes als das Feld Anfrage ist, und die Nachricht, die die tats?chliche E -Mail -Nachricht ist, die von Django gesendet wird .

Andererseits erh?lt die Send () -Methode nur die formatierten Informationen von get_info und sendet die Nachricht mit der Funktion "send_mail". Obwohl dieser Abschnitt ziemlich gro? war, werden Sie sehen, wie wir die Kontaktansichten vereinfacht haben, indem wir die gesamte Sendelogik an die ContactForm selbst implementieren.

Kontaktansichten

?ffnen Sie die Datei contact/Views.py und fügen Sie die folgenden Importe hinzu:

pip <span>install django</span>

Wie Sie sehen, werden wir Django generische Ansichten verwenden, was uns bei einfachen Aufgaben eine Menge Zeit spart - beispielsweise beim Einrichten eines Formulars mit Formview oder beim Erstellen einer Ansicht, die nur eine Vorlage mit einer Vorlage rendert TemplateView.

Importieren wir auch die im vorherigen Abschnitt erstellte Kontaktform und die Funktion Reverse_lazy, die bei der Arbeit mit klassenbasierten Ansichten verwendet wird. Setzen Sie die Ansichten fort, die ContactView:

schreiben:
django-admin startproject EmailProject

Wie Sie sehen, erstellen wir eine einfache Formalansicht mit der von uns erstellten Kontaktform. Wir richten auch den template_name und den success_url ein. Wir schreiben die HTML -Vorlage und richten die URLs sp?ter ein.

Mit der gültigen Formmethode senden wir die E -Mail mit der Methode contactForm.send () nur dann, wenn alle Felder des Formulars gültig sind. Dies bedeutet, dass die Nachricht nicht gesendet wird, wenn der Benutzer ungültige Eingaben wie eine nicht formatierte E -Mail -Adresse eingibt.

Die obige Form_Valid-Methode-Implementierung w?re in einer funktionsbasierten Ansicht den folgenden Ansichten entsprechen:
python <span>-m venv .venv</span>

Beende in diesem Abschnitt werden wir eine contactSucessView schreiben, die dem Benutzer eine Erfolgsnachricht anzeigt. Da wir die TemplateView -Klasse bereits importiert haben, müssen wir nur daraus erben und das Attribut template_name definieren:

<span># CMD
</span>.venv<span>\Scripts\activate
</span>
<span># Power Shell
</span>.venv<span>\Scripts\Activate.ps1
</span>
<span># WSL
</span><span>source .venv/bin/activate</span>

Sie k?nnen die Ansichten.Py -Datei im GitHub -Repository überprüfen, wenn Sie Bedenken haben.

Wenden Sie URLs

an

Es ist Zeit, die URL -Muster der Kontakt -App zu erstellen. Da Django uns die URLS.Py -Datei standardm??ig nicht gibt, müssen wir sie mit dem folgenden Befehl erstellen (stellen Sie sicher, dass Sie sich im Ordner der Kontakt -App befinden):

pip <span>install django</span>

?ffnen Sie diese Datei und richten Sie die Variablen app_name und urlpatterns ein:

django-admin startproject EmailProject

Wir verwenden Pfad, um die Route und ihre korrespondentierte Ansicht zur URL -Konfiguration der App einzuschlie?en. Wenn wir die Variable app_name auf "Kontakt" festlegen, bedeutet dies, dass die URL Namespacing der App so aussieht:

<span>cd EmailProject
</span>python manage.py runserver

Hinweis: Ein Namespace ist das, was wir in Django -Vorlagen und -ansichten dynamisch nennen.

Sie k?nnen mehr über den Django -URL -Dispatcher in der offiziellen Dokumentation erfahren.

Schreibvorlagen

Django -Vorlagen sind die bevorzugte Methode, um Daten dynamisch anzuzeigen, indem sie HTML und spezielle Tags, die von der Django -Vorlagesprache bereitgestellt werden, verwendet werden.

Für diese spezielle App werden wir drei Vorlagen verwenden:

  • base.html: Alle anderen Vorlagen erben daraus. Es enth?lt das HTML -Skelett, das alle Vorlagen haben müssen, sowie Links zu Bootstrap.
  • contact.html: Zeigt das Kontaktformular an.
  • success.html: Zeigt eine Erfolgsnachricht an.

Beginnen wir zun?chst die App -Vorlagenstruktur des Kontakts (stellen Sie sicher, dass Sie sich im Ordner der Kontakt -App befinden):

tree

Die obigen Befehle erstellen die typische Vorlagenstruktur einer wiederverwendbaren Django -App - AppName/Vorlagen/Appname - und die zuvor erw?hnten Baumvorlagendateien. So sollte die App -Dateistruktur jetzt aussehen:

├── EmailProject
│   ├── asgi.py
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

1 directory, 6 files

Lassen Sie uns in den Inhalt der Base.html -Vorlage:

springen:
<span># EmailProject/settings.py
</span>
<span># Bottom of the file
</span>EMAIL_BACKEND <span>= 'django.core.mail.backends.smtp.EmailBackend'
</span>EMAIL_HOST <span>= ''
</span>EMAIL_PORT <span>= 587
</span>EMAIL_USE_TLS <span>= True
</span>EMAIL_HOST_USER <span>= ''
</span>EMAIL_HOST_PASSWORD <span>= ''
</span>

Wie Sie sehen, ist es das einfache Skelett einer HTML -Datei, die Links zu Bootstrap 5 enth?lt. Dadurch k?nnen wir unsere Kontakt -App ohne Verwendung von CSS -Dateien stylieren. Mit dem { % Blocknamen-Block %} -Tag k?nnen wir einen Platzhalter einrichten, den ?Kindervorlagen“ verwenden. Durch die Verwendung dieses Tags wird die Vererbung der Vorlage zu einer leichten Aufgabe.

Bevor Sie in die Formulare gehen
EMAIL_HOST <span>= 'smtp-mail.outlook.com'
</span>EMAIL_PORT <span>= 587
</span>EMAIL_USE_TLS <span>= True
</span>EMAIL_HOST_USER <span>= 'your-email@outlook.com'
</span>EMAIL_HOST_PASSWORD <span>= 'your-app-password'</span>

erneut, Crispy_Forms ist eine Django -App, und wir müssen sie in die Liste installed_apps aufnehmen:

EMAIL_HOST <span>= 'smtp.mail.yahoo.com'
</span>EMAIL_PORT <span>= 587
</span>EMAIL_USE_TLS <span>= True
</span>EMAIL_HOST_USER <span>= 'your-email@yahoo.com'
</span>EMAIL_HOST_PASSWORD <span>= 'your-app-password'</span>

Wir verwenden das Vorlagenpaket von Bootstrap 4, da die Startstrap -Formklassen zwischen der 4. und 5. Version kompatibel sind (zum Zeitpunkt des Schreibens).

Arbeiten wir nun an der Ankontakt.html -Vorlage:

python <span>-m venv .venv</span>

Beachten Sie, wie wir die Basisvorlage erweitert haben und den Block -Platzhalter verwenden. Dies macht die Sprache der Django -Vorlagen so effizient, da wir viel HTML -Kopieren und -besten sparen k?nnen.

Wenn wir über das Formular sprechen, verwenden wir die Methode ?Post“, was bedeutet, dass unser ContactView die vom Benutzer angegebenen Daten verarbeitet und die E -Mail senden, wenn das Formular gültig ist. Der { % csrf_token %} ist aus Sicherheitsgründen in jeder Form obligatorisch. Die Dokumentation von Django hat eine dedizierte Seite zu CSRF -Token und die Gründe, sie bei der Arbeit mit Formularen zu verwenden.

Wir werden das Formular mit dem knusprigen Template -Tag rendern, weshalb wir die knusprigen Tags mit { % lad crispy_forms_tags %}.

geladen haben.

Schlie?lich schreiben wir den Erfolg.html Vorlage:
<span># CMD
</span>.venv<span>\Scripts\activate
</span>
<span># Power Shell
</span>.venv<span>\Scripts\Activate.ps1
</span>
<span># WSL
</span><span>source .venv/bin/activate</span>

Wie Sie sehen, handelt es sich um eine einfache Erfolgsankündigung mit einem Link zum Kontaktformular, falls der Benutzer eine andere Nachricht senden m?chte.

Führen Sie den Server erneut aus und besuchen Sie http: // localhost: 8000 (stellen Sie sicher, dass die .venv aktiviert sind und Sie befinden sich im Projekt -Root -Ordner):
pip <span>install django</span>

Das Bild unten zeigt, wie das endgültige Kontaktformular aussieht.
So senden Sie E -Mail mit Django mit SMTP -Server

Und dies ist ein Bild der Erfolgsnachricht.
So senden Sie E -Mail mit Django mit SMTP -Server

Und hier ist ein Bild der E -Mail im Posteingang.
So senden Sie E -Mail mit Django mit SMTP -Server

Best Practices, um

zu folgen

1. Wiederverwendbare E -Mail -Sendungsfunktion

Um Ihre E-Mail-Sendungs-Logik modular und wiederverwendbar zu machen, k?nnen Sie die E-Mail-Sendungsfunktion in eine Helferfunktion verschieben:
django-admin startproject EmailProject

Sie k?nnen diese Funktion jetzt überall dort aufrufen, wo Sie E -Mails senden müssen, einschlie?lich Ihres Kontaktformulars.

2. Einheitstest

Sie k?nnen Django.test verwenden, um E -Mail -Django -Funktionen zu testen.
<span>cd EmailProject
</span>python manage.py runserver

3. Senden reichhaltiger HTML -E -Mails

HTML -E -Mails bieten ein besseres Design und eine bessere Pr?sentation. Verwenden Sie die Template -Engine von Django, um umfangreiche E -Mail -Inhalte zu erstellen:
tree

4. Integration von E-Mail-Diensten von Drittanbietern

Für produktionsbereite Anwendungen erw?gen Sie Dienste von Drittanbietern wie SendGrid, MailGun oder AWS SES. Diese Dienste bieten erweiterte Funktionen wie E -Mail -Analyse, Lieferverfolgung und Spam -Filterung.
├── EmailProject
│   ├── asgi.py
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

1 directory, 6 files

5. E -Mail -überprüfung in Benutzerregistrierung

E -Mail -überprüfungslinks w?hrend der Benutzerregistrierung senden, um SPAM -Konten zu verhindern.
<span># EmailProject/settings.py
</span>
<span># Bottom of the file
</span>EMAIL_BACKEND <span>= 'django.core.mail.backends.smtp.EmailBackend'
</span>EMAIL_HOST <span>= ''
</span>EMAIL_PORT <span>= 587
</span>EMAIL_USE_TLS <span>= True
</span>EMAIL_HOST_USER <span>= ''
</span>EMAIL_HOST_PASSWORD <span>= ''
</span>

einpacken

Herzlichen Glückwunsch! Sie haben gelernt, wie man E -Mails mit Django sendet und wie man auch ein Django -Kontaktformular erstellt.

Es gibt viele M?glichkeiten, E -Mails mit Django zu senden. In diesem Tutorial haben Sie es mit Ihrer pers?nlichen E -Mail -Adresse geschafft, aber ich m?chte, dass Sie andere Tools erkunden und in Ihre Projekte integrieren.

In diesem Tutorial haben wir Folgendes behandelt:

  • So richten Sie Django -Einstellungen ein, um E -Mails zu bedienen
  • So verwenden Sie ein pers?nliches E -Mail -Konto, um E -Mails in einem kleinen Projekt zu senden
  • So verwenden Sie .Env -Dateien zur Verwendung sensibler Daten in einem Django -Projekt
  • So erstellen Sie ein automatisiertes Kontaktformular

Weitere Informationen zu Django finden Sie in ?Erstellen Sie eine Foto-Sharing-App mit Django“.

FAQs auf Django E -Mail mit SMTP -Server

senden

Kann ich eine E -Mail von Django senden?

Ja, Django bietet ein integriertes E-Mail-Sendungs-Framework, mit dem es einfach wird, E-Mails zu senden. Durch Konfigurieren der SMTP -Einstellungen in Ihrer Datei "Setting.Py" k?nnen Sie E -Mails mit der Funktion "Send_mail" oder "E -MailMessage -Klasse" senden.

Wie sende ich E -Mails in Django?

, um Django zum Senden von E -Mails zu konfigurieren:
  • Stellen Sie die SMTP -Details in Ihren Einstellungen ein. .com 'E -Mail_host_password =' ??your_app_password '
  • Verwenden Sie ein sicheres Passwort anstelle Ihres Haupt -E -Mail -Passworts, wenn Sie Google Mail oder ?hnliche Anbieter verwenden.
  • Für die Produktion erw?gen Sie Dienste von Drittanbietern wie Sendgrid, Mailgun oder Amazon SES für eine bessere Skalierbarkeit.

Wie sende ich Outlook Mail in Django?

Um Outlook -Mails in Django zu senden, k?nnen Sie Djangos E -Mail -Senden -Funktionen mit den SMTP -Einstellungen für Outlook verwenden. Konfigurieren Sie die SMTP -Einstellungen für Outlook in der Datei Ihres Django -Projekts. Mit diesen Einstellungen k?nnen Django eine Verbindung zum Outlook SMTP -Server herstellen, um E -Mails zu senden.

Wie kann man E -Mails in Django erhalten?

Konfigurieren Sie in den Einstellungen Ihres Django -Projekts. In der Regel ben?tigen Sie die IMAP -Serverdetails für Ihren E -Mail -Anbieter zusammen mit Authentifizierungsanmeldeinformationen. Verwenden Sie anschlie?end die IMAPLIB -Bibliothek, um eine Verbindung zu Ihrem E -Mail -Server herzustellen und E -Mails abzurufen. Sie k?nnen dies in Ihren Django -Ansichten oder benutzerdefinierten Verwaltungsbefehlen tun. Sobald Sie eine E -Mail abgerufen haben, k?nnen Sie sie verarbeiten, Informationen extrahieren und die erforderlichen Aktionen in Ihrer Django -Anwendung ausführen. Dies kann das Parsen des E -Mail -Inhalts, das Speichern relevanter Daten in Ihrer Datenbank oder das Ausl?sen spezifischer Aktionen basierend auf dem Inhalt oder Absender der E -Mail beinhalten.

Wie teste ich E -Mails, um Django zu senden, ohne echte E -Mails zu senden?

W?hrend der Entwicklung k?nnen Sie ein optionales E -Mail -Backend verwenden, um E -Mails zu testen, ohne eine Verbindung zu einem echten SMTP -Server herzustellen. Zum Beispiel: Konsolen -E -Mail -Backend: Drucken E -Mail -Nachrichten an das Terminal, anstatt sie zu senden.
python <span>-m venv .venv</span>

Verwenden Sie für fortgeschrittenere Tests Tools wie Mailhog oder MailTrap, die als gef?lschte SMTP -Server zum Erfassen und Anzeigen von Test -E -Mails fungieren.

Wie verwalte ich sensible E -Mail -Anmeldeinformationen sicher?

Verwenden Sie Django Environ, um sensible Anmeldeinformationen (wie E -Mail -Host, Benutzername und Passwort) aus einer .Env -Datei zu laden:

  1. Django Environ installieren: PIP Installieren Sie Django-Eniron
  2. Erstellen einer .env -Datei: E -Mail_host = SMTP.gmail.com E -Mail_HOST_USER=YOUR_EMAIL@EMABLE.com E -Mail_HOST_PASSWORD = YOUR_APP_PASSWORD
  3. Laden Sie die .Env -Datei in Einstellungen. EMAIL_HOST_PASSWORD ')

Das obige ist der detaillierte Inhalt vonSo senden Sie E -Mail mit Django mit SMTP -Server. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Verknüpfung der Entwickler zu Ihrer udemy?hnlichen Plattform Die Verknüpfung der Entwickler zu Ihrer udemy?hnlichen Plattform Jun 17, 2025 pm 04:43 PM

Bei der Entwicklung von Lernplattformen, die Udemy ?hneln, liegt der Fokus nicht nur auf der Qualit?t der Inhalte. Ebenso wichtig ist, wie dieser Inhalt geliefert wird. Dies liegt daran, dass moderne Bildungsplattformen auf Medien beruhen, die zug?nglich, schnell und leicht zu verdauen sind.

Kostengünstige Reseller -Plattformen für den Kauf von SSL -Zertifikaten Kostengünstige Reseller -Plattformen für den Kauf von SSL -Zertifikaten Jun 25, 2025 am 08:28 AM

In einer Welt, in der Online-Vertrauen nicht verhandelbar ist, sind SSL-Zertifikate für jede Website von wesentlicher Bedeutung geworden. Die Marktgr??e der SSL-Zertifizierung wurde im Jahr 2024 mit 5,6 Milliarden USD bewertet und w?chst immer noch stark.

5 Beste Zahlungsgateways für SaaS: Ihr ultimativer Leitfaden 5 Beste Zahlungsgateways für SaaS: Ihr ultimativer Leitfaden Jun 29, 2025 am 08:28 AM

Ein Zahlungsgateway ist ein entscheidender Bestandteil des Zahlungsprozesses, mit dem Unternehmen Zahlungen online akzeptieren k?nnen. Es fungiert als Brücke zwischen dem Kunden und dem H?ndler, über die Zahlung von Zahlungsinformationen und Erleichterung von Transaktionen. Für

Hurrikane und Sandstürme k?nnen dank des neuen Microsoft AI -Modells 5.000 -mal schneller prognostiziert werden Hurrikane und Sandstürme k?nnen dank des neuen Microsoft AI -Modells 5.000 -mal schneller prognostiziert werden Jul 05, 2025 am 12:44 AM

Ein neues Modell für künstliche Intelligenz (KI) hat gezeigt, dass die F?higkeit, wichtige Wetterereignisse schneller und mit gr??erer Pr?zision vorherzusagen als einige der am h?ufigsten verwendeten globalen Vorhersagesysteme

Neue Studien behauptet, AI 'versteht' Emotionen besser als wir & mdash; vor allem in emotional aufgeladenen Situationen Neue Studien behauptet, AI 'versteht' Emotionen besser als wir & mdash; vor allem in emotional aufgeladenen Situationen Jul 03, 2025 pm 05:48 PM

In einem weiteren Rückschlag für eine Dom?ne, in der wir glaubten, dass Menschen immer Maschinen übertreffen würden, schlagen Forscher jetzt vor, dass KI Emotionen besser versteht als wir. Die Forscher haben entdeckt, dass künstliche Intelligenz eine demonstriert

Ihre Ger?te füttern AI -Assistenten und ernten personenbezogenen Daten, auch wenn sie schlafen. Hier erfahren Sie, was Sie teilen. Ihre Ger?te füttern AI -Assistenten und ernten personenbezogenen Daten, auch wenn sie schlafen. Hier erfahren Sie, was Sie teilen. Jul 05, 2025 am 01:12 AM

Ob es ihm gef?llt oder nicht, künstliche Intelligenz ist Teil des t?glichen Lebens geworden. Viele Ger?te-einschlie?lich elektrischer Rasierer und Zahnbürsten-sind KI-betrieben.

Würde es uns unsere F?higkeit, für uns selbst zu denken, alles an die KI zu lagern? Würde es uns unsere F?higkeit, für uns selbst zu denken, alles an die KI zu lagern? Jul 03, 2025 pm 05:47 PM

Künstliche Intelligenz (KI) begann als Streben, das menschliche Gehirn zu simulieren. Inzwischen ist es in der Lage, die Rolle des menschlichen Gehirns im t?glichen Leben zu ver?ndern? Die industrielle Revolution hat die Abh?ngigkeit von manueller Arbeit verringert. Als jemand, der den Applikat untersucht

Fortgeschrittene KI -Modelle generieren bis zu 50 -mal mehr CO ₂ Emissionen als h?ufigere LLMs bei der Beantwortung der gleichen Fragen Fortgeschrittene KI -Modelle generieren bis zu 50 -mal mehr CO ₂ Emissionen als h?ufigere LLMs bei der Beantwortung der gleichen Fragen Jul 06, 2025 am 12:37 AM

Je pr?zise wir versuchen, KI -Modelle zu funktionieren, desto gr??er werden ihre Kohlenstoffemissionen - mit bestimmten Aufforderungen, die bis zu 50 -mal mehr Kohlendioxid erzeugen als andere, laut einer kürzlich durchgeführten Studie.

See all articles