2017-09-13 37 views
0

在我的Django项目中,我有leads,它们属于organization。我的一个观点通过组织过滤这些线索,然后通过电子邮件向他们发送消息。该消息采用html模板的形式。用Django发送电子邮件时传递唯一变量

目前,这是我要做的事:

# FIRST: get a list of all the emails 
leads_email = [] 

leads = Lead.objects.filter(organization=organization) 
for lead in leads: 
    if lead.email != None: 
     leads_email.append(lead.email) 


# SECOND: Django email functions 
msg = EmailMessage(subject, 
        get_template('email_templates/campaign_email.html').render(
         { 
          'message': message, 
         } 
        ), 
        from_email, 
        bcc=to_list) 
msg.content_subtype = "html" 
msg.send() 

但是每个lead都有一个与之关联的唯一代码,此字段lead.code下找到。我想在电子邮件中包含此代码。

例如,如果[email protected]的唯一代码是“test123”,那么我想将它包含在单独发送到[email protected]的电子邮件中。我目前通过传递一个名为message的变量来实现这一点,但这不是唯一的,每个线索都会得到相同的结果。

有关我如何完成此任何想法?谢谢

回答

2

如果您有专门针对每个对象的电子邮件内容,则必须单独发送电子邮件而不是批量发送电子邮件。所以你只需要在你的循环中包含电子邮件代码;

leads = Lead.objects.filter(organization=organization) 
for lead in leads: 
    if lead.email != None: 
     msg = EmailMessage(
      subject, 
      get_template('email_templates/campaign_email.html').render(
       { 
        'message': message, 
        'code': lead.code 
       } 
      ), 
      from_email, 
      [lead.email, ] 
     ) 
     msg.content_subtype = "html" 
     msg.send()