[PYTHON] Django Anfrageformular 2

Annahme

Fortsetzung der vorherigen Sitzung.

https://qiita.com/yusuke_mrmt/items/ebefdb6e8704913f6a4c

Hauptthema

Legen Sie das App-Passwort in Google Mail fest.

Richten Sie die zweistufige Authentifizierung ein.

Öffnen Sie zunächst die Google Mail-App und tippen Sie oben links auf die Menüleiste. Unten befindet sich ** Einstellungen **. Tippen Sie also darauf.

Tippen Sie auf ** Google-Konten verwalten **.

Wählen Sie den Punkt ** Sicherheit ** und wählen Sie ** Schützen Sie Ihr Konto ** und nehmen Sie die entsprechenden Einstellungen vor Nehmen wir Einstellungen wie die zweistufige Authentifizierung vor.

Das erhaltene Passwort wird nur für die Anwendung verwendet, so Google Ich denke, Sie müssen keine Maßnahmen ergreifen, um es irgendwo aufzubewahren. Da es jedoch in der Django-Einstellungsdatei beschrieben ist ** settings.py </ code> ** Kopieren wir es in einen Texteditor.

Mail-Sendefunktion hinzufügen

Wir werden die Mail-Sendefunktion von Django hinzufügen.

Zunächst in der Einstellungsdatei ** settings.py </ code> ** Beschreiben der Verwendung des Mailservers.

Verwenden Sie beim Posten von Code auf GitHub eine .gitignore </ code> -Datei usw. Stellen Sie sicher, dass Sie den Ausschluss vollständig angeben.

project/project/settings.py


STATIC_URL = '/static/'

#Für Mailserver
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'Erhaltenes App-Passwort'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

Dann in views.py </ code> Verarbeiten Sie die im Anfrageformular geschriebene Nachricht Ich werde es hinzufügen, damit ich angemessen reagieren kann.

project/contact/views.py



from django.shortcuts import render, redirect
from .forms import ContactForm
from django.http import HttpResponse #Nachtrag
from django.conf import settings #Nachtrag
from django.core.mail import BadHeaderError, send_mail #Nachtrag

.........

def contact_form(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            #Nachtrag
            subject = form.cleaned_data['subject']
            message = form.cleaned_data['message']
            sender = form.cleaned_data['sender']
            myself = form.cleaned_data['myself']
            recipients = [settings.EMAIL_HOST_USER]
            if myself:
                recipients.append(sender)
            try:
                send_mail(subject, message, sender, recipients)
            except BadHeaderError:
                return HttpResponse('Ein ungültiger Header wurde gefunden.')
            return redirect('contact:complete')
    else:
        form = ContactForm()
    return render(request, 'contact/contact_form.html', {'form': form})

.........

Zum Formatieren und Zurückgeben der mit form.is_valid () </ code> validierten Daten Speichern Sie in einer Variablen mit clean_data [] </ code>.

Empfänger </ code> ist die Konfigurationsdatei Ich übergebe meine in settings.py definierte Adresse.

send_mail </ code> erfordert 4 Argumente. Senden Sie Betreff / Nachricht / Absender an Ihre eigene Adresse.

  • Der Absender (Absenderadresse) wird nicht in Ihrem Posteingang angezeigt. Ändern Sie ihn daher später.

BadHeaderError </ code> ist eine Beschreibung, um das Einfügen von Headern zu verhindern.

if_myself </ code> ist, wenn der Absender das Kontrollkästchen aktiviert Die Absenderadresse (Absender) wird den Empfängern hinzugefügt und eine E-Mail an beide Parteien gesendet.

Der Absender der an beide Parteien gesendeten Mail stammt von der festgelegten eigenen Adresse.

Senden wir es einmal. Wenn Sie umgeleitet werden, um die Übertragung abzuschließen, sind Sie erfolgreich.

Recommended Posts