【问题标题】:Django Send emails to all users in the database tableDjango 向数据库表中的所有用户发送电子邮件
【发布时间】:2015-02-24 04:21:40
【问题描述】:

我已经开始 django 构建我的第一个应用程序教程,我必须在某些特殊场合向我存储在数据库表中的所有用户发送电子邮件。我在谷歌上搜索并找到了许多 API,但发现很难用我的应用程序进行配置。

这是我的model.py

class Users(models.Model):
    UserID = models.IntegerField(verbose_name='User ID',max_length=255,primary_key=True)
    UserName = models.CharField(verbose_name='User Name',max_length=254,null=True,blank=True)
    Email = models.EmailField(verbose_name='Email',max_length=254,null=True,blank=True)
    Phone = models.CharField(verbose_name='Phone Number',max_length=254,null=True,blank=True)

我想在这里有一个功能,它应该让所有用户一个接一个地发送电子邮件,还告诉状态天气电子邮件是否已发送。

【问题讨论】:

    标签: python django email


    【解决方案1】:

    发送电子邮件非常简单。 对于您的 Users 模型,这将是:

    for user in Users.objects.all():
        send_mail(subject, message, from_email,
            user.Email)
    

    结帐Django's Documentation on send emails了解更多详情。

    如果您尝试过,如果您提及您面临的问题,将会很有用。

    另请注意,IntegerField 没有 max_length 参数。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    • 它确实回答了这个问题。它提到了如何在 django 中发送电子邮件,并附有参考链接。此外,它确实鼓励 OP 提供更多信息。
    • @Werner 我同意,我会添加一个更全面的答案。
    【解决方案2】:

    battery 的回答还可以,但我会这样做:

    recievers = []
    for user in Users.objects.all():
        recievers.append(user.email)
    
    send_mail(subject, message, from_email, recievers)
    

    这样,您将只打开一次与邮件服务器的连接,而不是为每封电子邮件打开。

    【讨论】:

      【解决方案3】:

      对于 Users.objects.all() 中的用户: 发送邮件(主题,消息,发件人电子邮件, 用户.电子邮件)

      这是最好的解决方案,效果很好

      【讨论】:

        猜你喜欢
        • 2019-12-15
        • 2019-03-30
        • 2013-12-03
        • 2016-03-04
        • 1970-01-01
        • 2016-08-01
        • 2012-11-18
        • 2022-10-05
        • 2014-11-23
        相关资源
        最近更新 更多