使用send_mass_mail
会导致所有电子邮件都显示在“收件人”字段中。
我遇到了this solution,但它隐藏了所有用户电子邮件。它在收件箱中看起来很奇怪,因为“收件人”字段为空。
我想要的是使用send_mass_mail
在“收件人”字段中仅显示收件人的电子邮件。例如。如果我发送电子邮件至jack@gmail.com和jane@gmail.com,杰克应该看到jack@gmail.com,jane应该在'To'字段中看到jane@gmail.com。
有没有办法实现这个目标?或者我是否必须使用send_mail
?
答案 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)