【发布时间】:2015-02-25 09:04:27
【问题描述】:
我是 Django 新手,在 django 中盯着我的第一个应用程序,我正在向我的用户发送有关特定事件的电子邮件。我正在使用 SendGrid API 发送电子邮件。我编写了以下代码来向单个用户发送电子邮件,这对我有用。但想一次向多个用户发送电子邮件。我还有一张供用户使用的桌子。我需要从列表中的数据库中获取所有用户并立即向他们发送电子邮件。
注意我刚开始学习django,对django orm知之甚少。
这里是通过html表单从用户那里获取消息主题和内容并发送给单个用户的功能。现在我已经硬编码了收件人的电子邮件。
def send_message(request):
Message_Subject = str(request.POST.get('Subject'))
Message_Content = str(request.POST.get('Content'))
Message_Type = str(request.POST.get('optionsRadios'))
Message.objects.create(MessageSubject= Message_Subject, MessageContent=Message_Content)
sg = sendgrid.SendGridClient(settings.SENDGRID_USERNAME, settings.SENDGRID_PASSWORD)
message = sendgrid.Mail()
message.add_to('user@bar.com')
message.set_subject(Message_Subject)
message.set_html(Message_Content)
message.set_text(Message_Content)
message.set_from('Emailer System <foo@example.com>')
status, msg = sg.send(message)
if status == 200:
messages.success(request, 'Your email was successfully sent.')
else:
messages.error(request, msg)
return render_to_response('send_message.html', context_instance=RequestContext(request))
这是我的 model.py 文件
从 django.db 导入模型
class Users(models.Model):
UserID = models.IntegerField(verbose_name='User ID',max_length=255,primary_key=True,blank=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)
class Message(models.Model):
MessageID = models.AutoField(verbose_name='Message ID',primary_key=True)
MessageSubject = models.CharField(verbose_name='Subject',max_length=255,null=True,blank=True)
MessageContent = models.TextField(verbose_name='Content',null=True,blank=True)
MessageType = models.CharField(verbose_name='Message Type',max_length=255,default='Email',null=True,blank=True)
class Log_Messages(models.Model):
LogID = models.AutoField(verbose_name='Log ID',primary_key=True)
MessageID = models.ForeignKey(Message,verbose_name='Message ID',null=True, blank=True)
UserID = models.ForeignKey(Users,verbose_name='User ID',null=True, blank=True)
Status = models.BooleanField(default=False)
SentDateTime = models.DateTimeField(default=datetime.now(), blank=None, null=None)
【问题讨论】:
-
message.add_to('taqi.hassan@cogilent.com') 你可以尝试传递电子邮件地址列表,如 ["abc@gmail.com","xyz@gmail.com", 。 ..] 在上述声明中。它对我有用-对于 smtplib 这是用于发送电子邮件的 python lib。