首页 > 解决方案 > Django-Email,发送多封邮件取决于Email ID

问题描述

任何人都知道如何解决我的问题,我正在与多个收件人一起使用 DJango 电子邮件。从我的数据库向多个收件人帐户发送电子邮件正在工作,但现在我想发送电子邮件并且电子邮件:正文取决于数据 ID。

这是电子邮件列表,

场景: Plate_No: 123123 将仅发送到 example_email1@gmail.com,ABV112 将再次发送到 example_email2@gmail.com 等等。只有电子邮件中的 Plate_no 分配会发送,有人可以帮我解决我的问题。谢谢!

在此处输入图像描述

自动发送电子邮件脚本:

class HomeView(ListView):
    cstatus = VR.objects.filter(Deadline__date = datetime.datetime.today(), sent_email="No")
    print(cstatus)

    recipient_list = []
    for recipient in cstatus:
        recipient_list.append(recipient.email)
        print(recipient_list)
        
    plate = ""
    for carreg in cstatus:
            print(carreg.plate_no)
            plate = carreg.plate_no

    if plate != "":
        subject = 'FMS Automated Email'
        html_message = render_to_string('vr/pms_email.html', {'content':cstatus})
        plain_message = strip_tags(html_message)
        from_email = 'FMS <fms@gmail.com>'
        mail.send_mail(subject, plain_message, from_email, recipient_list, html_message=html_message, fail_silently=False)
        cstatus.update(sent_email="Yes")

    model = VR
    context_object_name = 'list'
    template_name = 'vr/list.html'

标签: pythondjangoemaildjango-email

解决方案


您可以在 cstatus 查询集上使用 for 循环将电子邮件发送给 recipents。没有测试它,但它应该看起来像这样:

for item in cstatus:
    subject = 'FMS Automated Email'
    html_message = render_to_string('vr/pms_email.html'{'content':item.Plate_no})
    plain_message = item.Plate_no
    recipent_list = [item.email]
    from_email = 'FMS <fms@gmail.com>'
    mail.send_mail(subject, plain_message, from_email, recipient_list, html_message=html_message, fail_silently=False)
    item.update(sent_email="Yes")

推荐阅读