使用 Django 发送电子邮件时传递唯一变量

Passing Unique Variable when Sending E-Mail with Django

在我的 Django 项目中,我有 leads 属于 organization。我的观点之一是按组织过滤这些线索,然后通过电子邮件向他们发送消息。此消息采用 html 模板的形式。

目前我是这样做的:

# 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 下。我想在电子邮件中包含此代码。

例如,如果 test@mail.com 的唯一代码是 "test123",那么我想将其包含在单独发送给 test@mail.com 的电子邮件中。我目前通过传递一个名为 message 的变量来执行此操作,但这不是唯一的,每个潜在客户都会得到相同的东西。

知道如何实现吗?谢谢

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

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()