如何向 django 管理站点添加新用户发送电子邮件?

2023-12-13

每当管理员向管理站点添加新用户时,我想向用户电子邮件地址发送一封包含登录详细信息的电子邮件。

我知道 Django 为此提供了 send_mail 模块,但我不知道应该把这段代码放在哪里 并覆盖某些视图以在添加新用户时自动发送邮件。

from django.core.mail import send_mail

send_mail('Subject here', 'Here is the message.', '[email protected]',
    ['[email protected]'], fail_silently=False)

我该怎么做?

我尝试将此代码放入我的 models.py 中

from django.db.models.signals import post_save
from django.contrib.auth.models import User

    def email_new_user(sender, **kwargs):
        if kwargs["created"]:  # only for new users
            new_user = kwargs["instance"] 
            print new_user.email
            #send_mail('Subject here', 'Here is the message.', '[email protected]',['[email protected]'], fail_silently=False)


post_save.connect(email_new_user, sender=User)

但它不会在命令行上打印任何内容。我认为每当我创建新用户时该函数都不会被调用。不知道为什么?


正如我在上面看到的那样,我可以在代码中看到多个问题。

  • 首先,def email_new_user()缩进错误。如果这不是此处的格式错误,请更正它。
  • new_user = kwargs.["instance"]是错误的语法。确实应该是kwargs["instance"]

然后,您是否有正在运行的 SMTP 服务器?你能从 shell 发送电子邮件吗?如果没有,请配置它,然后重试。它应该有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何向 django 管理站点添加新用户发送电子邮件? 的相关文章

随机推荐