[PYTHON] Envoyez facilement des e-mails avec Gmail avec Django

introduction

Actuellement, je crée un mBaaS complètement privé, et s'il devient un OSS pour tout le monde, j'ai pensé que je devrais penser aux comptes, etc. alors j'ai envoyé un email.

environnement

Étant donné que PyAPNs ne prend en charge que Python 2.x, je l'ai implémenté en utilisant Python 2 en sachant qu'il sera touché par certains élèves du primaire. Je pense qu'il peut être utilisé tel quel en Python 3.x, donc si vous en avez envie, s'il vous plaît

Je ne suis toujours pas compatible avec Django 1.10. s'il vous plaît, pardonnez-moi

Préparation

L'environnement virtuel est prêt avec Virtualenv

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

Code source

Pour le moment, définissez settings.py comme ceci

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', #ajouter à
]
・ ・ ・
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')),
]

Je veux acheminer chaque application moi-même, donc ça ressemble à ceci.

send_mail/views.py


# coding: utf-8

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

def index(request):
   EmailMessage(u'matière', u'Texte', to = ['[email protected]', '[email protected]']).send()
   return HttpResponse('Send your register email')

Créez ʻurls.pydirectement soussend_mail`

send_mail/urls.py


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

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

Le code source lui-même ressemble à ceci. avec ça

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

Et puis http: //127.0.0.1: 8000

Si c'est vrai, vous pouvez le faire en y accédant, mais c'est un peu déroutant en raison des spécifications Authenticate de Google.

Paramètres Google

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

  1. Connectez-vous d'abord avec votre compte!
  2. Appuyez sur le bouton bleu intitulé Compte
  3. Une page semblable à celle ci-dessous apparaît. Cliquez sur Connexion et sécurité スクリーンショット_2016-10-01_午前2_53_06.png
  4. En bas, il y a un élément appelé __ Autoriser les applications moins sécurisées __, alors activez-le s'il est désactivé par défaut. Il sera disponible lorsqu'il ressemblera à l'image ci-dessous スクリーンショット 2016-10-01 午前2.54.24.png

Essayons réellement

Dans mon cas, je voulais envoyer un e-mail à ceux qui ont oublié leur mot de passe de connexion, donc le contenu de l'e-mail ressemble à ceci.

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

Un acte violent consistant à prendre un croquis d'un tweet Twitter et à le coller tel quel

prime

Créer au hasard une chaîne pour la réinitialisation du mot de passe

Python2.série x


import random, string

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

Python3.série x


import random, string

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

C'est si facile!

Recommended Posts

Envoyez facilement des e-mails avec Gmail avec Django
Envoyer des e-mails avec Django
Envoyer en utilisant Python avec Gmail
Remarque: envoyer un e-mail avec Django
Envoyez automatiquement des e-mails avec Amazon SES
Envoyer des e-mails via gmail avec Python 3.4.3.
Envoyez des newsletters en une seule fois avec Gmail
Supprimez tous les e-mails Gmail inutiles avec l'API
Internationalisation avec Django
CRUD avec Django
J'ai essayé d'envoyer un e-mail de fin d'inscription depuis Gmail avec django.
Authentifier Google avec Django
Django 1.11 a démarré avec Python3.6
Télécharger des fichiers avec Django
Résumé du développement avec Django
Facilement démonisé avec Supervisor
Sortie PDF avec Django
Sortie Markdown avec Django
Utiliser Gentelella avec Django
Premiers pas avec Django 1
Téléchargement de fichiers avec django
Utilisez LESS avec Django
La mutualisation mécanise avec Django
Envoyer des e-mails par Python
Utiliser MySQL avec Django
Django à partir d'aujourd'hui
Envoyer Gmail en Python
Premiers pas avec Django 2
[Python] Envoyer gmail avec python: envoyez un par un avec plusieurs fichiers image en pièce jointe
[Python] Envoyez un e-mail depuis Gmail avec le paramètre d'authentification en deux étapes
Faites Django avec CodeStar (Python3.6.8, Django2.2.9)
Envoyer du courrier japonais avec Python3
Lancez-vous avec Django! ~ Tutoriel ⑤ ~
Facilement sans serveur avec Python en utilisant Calice
Environnement de site Web de configuration minimale avec django
Créer une API avec Django
Faites Django avec CodeStar (Python3.8, Django2.1.15)
Déployer Django sans serveur avec Lambda
Python3 + Django ~ Mac ~ avec Apache
Écrivez facilement if-elif avec lambda
Premiers pas avec Python Django (1)
Créer une page d'accueil avec django
Premiers pas avec Python Django (4)
Créer une application Web avec Django
Premiers pas avec Python Django (3)
Combinez Fast API avec Django ORM
Lancez-vous avec Django! ~ Tutoriel ⑥ ~
Utilisez Django pour enregistrer les données de tweet
Créez facilement des CNN avec Keras
Effectuer le cryptage AES avec DJango
Introduction à Python Django (6)
Web en temps réel avec les chaînes Django
Suppression de double envoi avec Django
Framework Django REST avec Vue.js
Créez facilement un profil avec un décorateur
Utilisez prefetch_related commodément avec Django
Premiers pas avec Python Django (5)
Connectez-vous avec Django Rest Framework
Qiita API Oauth avec Django