【发布时间】:2021-03-14 07:12:26
【问题描述】:
我想让我的用户自行决定他们的电子邮件后端。这就是为什么我在用户上创建了与电子邮件相关的密钥(主机、端口、用户名......),现在我尝试将这个(见下文)后端工作到我的 Django 项目中。使用the docs 和source code,我的第一次尝试是通过我的自定义“UserBackend”扩展默认的EmailBackend,它覆盖__init__ 函数,如下所示:
class UserBackend(EmailBackend):
def __init__(self, user_id, host=None, port=None, username=None ...):
user = User.objects.get(id=user_id)
super().init(host=user.email_host, port=user.email_port ...)
当这个方法被调用时(我试图从 shell 调用 send_mail)它没有得到 user_id。我该如何以不同的方式处理这个问题,或者我将如何扩展我的尝试?我不想完全重写 Django 的邮件系统,因为它本身就可以工作。
【问题讨论】: