【问题标题】:Using third party Email system for Django Password Reset使用第三方电子邮件系统进行 Django 密码重置
【发布时间】:2017-01-16 19:17:54
【问题描述】:

我有一个托管在 Google Compute Engine 上的 Django 应用程序(不允许端口 25/465/587 发送电子邮件)。因此,我在 Django App 中集成了第三方电子邮件系统。第三方电子邮件系统也可以在 Google Compute Engine 上找到。

但是当我使用 Django 重置密码时,该电子邮件仍然由 Django 默认电子邮件系统发送。这个用于密码重置的 Django 默认电子邮件系统可以更改吗?

如果是,有人可以解释一下如何更改吗?

谢谢,

【问题讨论】:

    标签: python django email passwords google-compute-engine


    【解决方案1】:

    有类似Email backends的东西

    # settings.py
    EMAIL_BACKEND = 'project.backends.mail.CustomEmailBackend'
    
    # project/backends/mail.py
    from django.core.mail.backends.base import BaseEmailBackend
    class CustomEmailBackend(BaseEmailBackend):
        def send_messages(self, messages):
            for message in messages:
                # do the stuff with each message
                print(message.subject, message.body, message.to, message.cc)
    

    请记住,settings.py 中的 EMAIL_BACKEND 变量中的路径必须与项目文件夹树中 CustomEmailBackend 类的位置相同。

    每个message 都有相同的properties。 当然,django.core.mail 中的 send_mail 将照常工作,但请使用您的 CustomEmailBackend 发送电子邮件。

    【讨论】:

    • 使用此代码,除了第三方发送的电子邮件之外,其他一切都将保持不变?
    • 这个 CustomEmailBackend() 类在哪里定义?
    • 我尝试在 settings.py 中设置 EMAIL_BACKEND = 'app.file_name.CustomEmailBackend' 并在 file_name.py 文件中添加了这个类,并在 for 循环中添加了一个 print() ......它没有t 工作...
    • @Naveen 您是否在此评论所在的地方实施了您的第三方系统:# do the stuff with each message
    猜你喜欢
    • 2018-07-21
    • 1970-01-01
    • 2017-01-25
    • 2020-02-15
    • 2013-12-18
    • 2019-06-09
    • 2011-08-14
    • 2015-03-12
    • 2019-02-01
    相关资源
    最近更新 更多