[PYTHON] Senden Sie mit Django ganz einfach E-Mails mit Google Mail

Einführung

Derzeit mache ich ein komplett privates mBaaS-ähnliches und wenn es ein OSS für alle wird, dachte ich, ich sollte über Konten usw. nachdenken, also schickte ich eine E-Mail.

Umgebung

Da PyAPNs nur Python 2.x unterstützt, habe ich es mit Python 2 implementiert, mit dem Wissen, dass es von einigen Grundschülern getroffen wird. Ich denke, dass es so verwendet werden kann, wie es in Python 3.x ist. Wenn Sie also Lust dazu haben, bitte

Ich bin immer noch nicht kompatibel mit Django 1.10. bitte verzeih mir

Vorbereitung

Die virtuelle Umgebung ist mit Virtualenv bereit

$ pip install django==1.9.1
$ django-admin.py startproject sampleproject
$ django-admin.py startapp send_mail

Quellcode

Stellen Sie "settings.py" vorerst so ein

sampleproject/settings.py


# coding: utf-8
・ ・ ・
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'send_mail', #hinzufügen
]
・ ・ ・
LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'
・ ・ ・
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'passowrd'
EMAIL_PORT = 587
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

sampleproject/urls.py


# coding: utf-8

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('send_mail.urls', namespace = 'send_mail')),
]

Ich möchte jede App selbst routen, also sieht es so aus.

send_mail/views.py


# coding: utf-8

from django.core.mail import EmailMessage
from django.http import HttpResponse

def index(request):
   EmailMessage(u'Gegenstand', u'Text', to = ['[email protected]', '[email protected]']).send()
   return HttpResponse('Send your register email')

Erstellen Sie "urls.py" direkt unter "send_mail"

send_mail/urls.py


from django.conf.urls import url
from accounts import views

urlpatterns = [
    url(r'^$', views.index, name = 'index'),
]

Der Quellcode selbst sieht so aus. mit diesem

$ python manage.py migrate
$ python manage.py runserver

Und dann "http: //127.0.0.1: 8000"

Wenn dies zutrifft, können Sie dies durch Zugriff tun. Aufgrund der Authentifizierungsspezifikationen von Google ist dies jedoch etwas verwirrend.

Google-Einstellungen

スクリーンショット_2016-10-01_午前2_51_07.png

  1. Melden Sie sich zuerst mit Ihrem Konto an!
  2. Drücken Sie die blaue Schaltfläche Konto
  3. Eine Seite wie die folgende wird angezeigt. Klicken Sie auf Login and Security スクリーンショット_2016-10-01_午前2_53_06.png
  4. Unten befindet sich ein Element mit dem Namen __ Weniger sichere Apps zulassen __. Aktivieren Sie es daher, wenn es standardmäßig deaktiviert ist. Es wird verfügbar sein, wenn es wie im Bild unten aussieht スクリーンショット 2016-10-01 午前2.54.24.png

Lass es uns tatsächlich versuchen

In meinem Fall wollte ich eine E-Mail an diejenigen senden, die ihr Anmeldekennwort vergessen haben, damit der E-Mail-Inhalt so aussieht.

スクリーンショット 2016-10-01 午前2.57.19.png

Ein gewalttätiger Akt, bei dem eine Skizze eines Twitter-Tweets aufgenommen und so eingefügt wird, wie sie ist

Bonus

Erstellen Sie nach dem Zufallsprinzip eine Zeichenfolge zum Zurücksetzen des Kennworts

Python2.x-Serie


import random, string

print(''.join([random.choice(string.letters + string.digits) for i in xrange(10)]))

Python3.x-Serie


import random, string

print(''.join([random.choice(string.ascii_letters + string.digits) for i in range(10)]))

So einfach ist das!

Recommended Posts

Senden Sie mit Django ganz einfach E-Mails mit Google Mail
Mail mit Django senden
Senden Sie mit Python mit Google Mail
Hinweis: Senden Sie eine E-Mail mit Django
Senden Sie E-Mails automatisch mit Amazon SES
Senden Sie E-Mails über Google Mail mit Python 3.4.3.
Senden Sie Newsletter auf einmal mit Google Mail
Löschen Sie alle unnötigen Google Mail-E-Mails mit API
Internationalisierung mit Django
CRUD mit Django
Ich habe versucht, mit django eine E-Mail zum Abschluss der Registrierung von Google Mail zu senden.
Authentifizieren Sie Google mit Django
Django 1.11 wurde mit Python3.6 gestartet
Laden Sie Dateien mit Django hoch
Entwicklungsverdauung mit Django
Mit Supervisor einfach zu dämonisieren
PDF mit Django ausgeben
Markdown-Ausgabe mit Django
Verwenden Sie Gentelella mit Django
Erste Schritte mit Django 1
Datei-Upload mit Django
Verwenden Sie WENIGER mit Django
Pooling mechanisieren mit Django
Mail per Python senden
Verwenden Sie MySQL mit Django
Django ab heute
Senden Sie Google Mail in Python
Erste Schritte mit Django 2
[Python] Google Mail mit Python senden: Senden Sie eins nach dem anderen mit mehreren angehängten Bilddateien
[Python] Senden Sie eine E-Mail aus Google Mail mit einer zweistufigen Authentifizierungseinstellung
Mach Django mit CodeStar (Python3.6.8, Django2.2.9)
Senden Sie japanische Post mit Python3
Fangen Sie mit Django an! ~ Tutorial ⑤ ~
Mit Python mit Kelch ganz einfach ohne Server
Minimale Konfigurations-Website-Umgebung mit Django
Erstellen Sie eine API mit Django
Mach Django mit CodeStar (Python3.8, Django2.1.15)
Stellen Sie Django serverlos mit Lambda bereit
Python3 + Django ~ Mac ~ mit Apache
Schreiben Sie einfach if-elif mit Lambda
Erste Schritte mit Python Django (1)
Erstellen Sie eine Homepage mit Django
Erste Schritte mit Python Django (4)
Erstellen Sie eine Webanwendung mit Django
Erste Schritte mit Python Django (3)
Kombinieren Sie Fast API mit Django ORM
Fangen Sie mit Django an! ~ Tutorial ⑥ ~
Verwenden Sie Django, um Tweet-Daten zu speichern
Erstellen Sie einfach CNNs mit Keras
Führen Sie eine AES-Verschlüsselung mit DJango durch
Einführung in Python Django (6)
Echtzeit-Web mit Django-Kanälen
Doppelte Submit-Unterdrückung mit Django
Django REST Framework mit Vue.js
Einfach cProfile mit einem Dekorateur
Verwenden Sie prefetch_related bequem mit Django
Erste Schritte mit Python Django (5)
Melden Sie sich mit dem Django Rest Framework an
Qiita API Oauth mit Django