Django向数据库表中的所有用户发送电子邮件

时间:2014-12-27 03:51:08

标签: python django email

我已经开始django构建我的第一个应用程序教程,我必须在一些特殊的Ocations数据库表中向我的所有用户存储发送电子邮件。我在谷歌搜索,发现很多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)

我希望在这里有一个功能,它应该逐个让所有用户获得,发送电子邮件也会告诉电子邮件已经发送的状态天气。

3 个答案:

答案 0 :(得分:3)

电池的答案还可以,但我会这样做:

recievers = []
for user in Users.objects.all():
    recievers.append(user.email)

send_mail(subject, message, from_email, recievers)

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

答案 1 :(得分:0)

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

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

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

如果你提到你遇到了什么问题,那将会很有用。

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

答案 2 :(得分:-1)

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

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