我正在开发一个托管在Google App Engine上的项目,并将Django-allauth用于我的用户系统。
现在我只是在settings.py
中使用以下设置EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = DEFAULT_FROM_EMAIL = 'myMail@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
但我想改用GAE的Mail API,以便我可以使用所有可用的配额。
要发送包含GAE API的电子邮件,我可以执行以下操作:
sender_address = "myMail@gmail.com"
subject = "Subject"
body = "Body."
user_address = "user@gmail.com"
mail.send_mail(sender_address, user_address, subject, body)
据我所知allauth documentation,我可以“通过覆盖帐户适配器的send_mail方法(allauth.account.adapter.DefaultAccountAdapter)来连接自己的自定义机制。”
但我真的很困惑如何去做这件事。
重置函数的位置是否重要?
非常感谢任何其他提示。
我的解决方案
我做了什么让Django-allauth电子邮件系统与Google App Engine mail API
一起使用在我的“首页”应用中创建了一个auth.py文件:
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 = "myEmailAddress@gmail.com"
subject = msg.subject
body = msg.body
user_address = email
mail.send_mail(sender_address, user_address, subject, body)
要将您的电子邮件用作GAE邮件API的发件人,请务必记住authorize the email作为发件人
最后,正如e4c5指出的那样,allauth必须知道这种覆盖是存在的,这在settings.py
中也是如此。ACCOUNT_ADAPTER = 'home.auth.MyAccountAdapter'
答案 0 :(得分:2)
您必须通过将以下行添加到settings.py来告诉django-allauth您的自定义适配器
ACCOUNT_ADAPTER = 'my_app.MyAccountAdapter'
注意用正确的名称替换my_app