2017-09-13 40 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()