Ich arbeite an einem Projekt in Google App Engine gehostet und Django-allauth für mein Benutzersystem verwenden.Verwenden von Google App Enigne Mail-API für django-allauth E-Mail
Im Moment verwende ich nur die folgende Einstellung in settings.py
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = DEFAULT_FROM_EMAIL = '[email protected]'
EMAIL_HOST_PASSWORD = 'password'
Aber ich möchte stattdessen GAE Mail-API verwenden, so dass ich den Einsatz aller verfügbaren Quoten erfolgen.
Um eine E-Mail mit GAE API senden ich tun kann, wie folgt:
sender_address = "[email protected]"
subject = "Subject"
body = "Body."
user_address = "[email protected]"
mail.send_mail(sender_address, user_address, subject, body)
Wie ich es von der allauth documentation verstehe, kann ich „Haken Ihre eigenen Mechanismus, indem sie die send_mail Methode des Kontos Adapter zwingende (allauth.account.adapter.DefaultAccountAdapter). "
Aber ich bin wirklich verwirrt darüber, wie man das macht.
Ist es wichtig, wo ich die überschriebene Funktion platziere?
Alle zusätzlichen Tipps würden sehr geschätzt werden.
Meine Lösung
Was ich tat, Django-allauth E-Mail-System zu erhalten, mit Google App Engine mail API
eine Datei auth.py in meinem 'Home' App Erstellt arbeiten:
from allauth.account.adapter import DefaultAccountAdapter
from google.appengine.api import mail
class MyAccountAdapter(DefaultAccountAdapter):
def send_mail(self, template_prefix, email, context):
msg = self.render_mail(template_prefix, email, context)
sender_address = "[email protected]"
subject = msg.subject
body = msg.body
user_address = email
mail.send_mail(sender_address, user_address, subject, body)
Um Ihre E-Mail als Absender mit der Mail-API von GAE zu verwenden, ist es wichtig, sich an authorize the email als Absender zu erinnern
Schließlich ist, wie e4c5 darauf hingewiesen, allauth muss wissen, dass diese Überschreibung besteht, die so in settings.py
ACCOUNT_ADAPTER = 'home.auth.MyAccountAdapter'
Perfekt zu ersetzen! Vielen Dank. Ich werde die Hauptfrage aktualisieren, um die nützlichen Informationen zu extrahieren, um die send_mail mit GAE api zu verwenden, sobald ich alles herausgefunden habe. – Martin