Django send_mass_email没有显示所有收件人的电子邮件

时间:2018-04-18 22:57:57

标签: django

使用send_mass_mail会导致所有电子邮件都显示在“收件人”字段中。

我遇到了this solution,但它隐藏了所有用户电子邮件。它在收件箱中看起来很奇怪,因为“收件人”字段为空。

我想要的是使用send_mass_mail在“收件人”字段中仅显示收件人的电子邮件。例如。如果我发送电子邮件至jack@gmail.com和jane@gmail.com,杰克应该看到jack@gmail.com,jane应该在'To'字段中看到jane@gmail.com。

有没有办法实现这个目标?或者我是否必须使用send_mail

对每个收件人使用循环

2 个答案:

答案 0 :(得分:1)

您可以使用send_mass_mail将不同的电子邮件直接发送给不同的收件人,您只需要正确构建参数:

message1 = ('Subject here', 'Here is the message', 'from@example.com', ['first@example.com', 'other@example.com'])
message2 = ('Another Subject', 'Here is another message', 'from@example.com', ['second@test.com'])
send_mass_mail((message1, message2), fail_silently=False)

这与自己迭代收件人并分别发送每封电子邮件没有什么不同,除了一个关键区别;使用send_mass_email将导致所有电子邮件通过单个连接发送到您的邮件服务器。在代码中迭代地执行操作将导致每个电子邮件的连接被打开和关闭,因此由于这种开销而变慢。

答案 1 :(得分:0)

试试这个:

from django.core.mail import send_mass_mail

subject = 'test subject'
message = 'test message'
from_email = 'from@from.com'
recipient_list = ['a@a.com', 'b@b.com', 'c@c.com']

messages = [(subject, message, from_email, [recipient]) for recipient in recipient_list]

send_mass_mail(messages)