【问题标题】:Send mass mail with hidden recipients发送带有隐藏收件人的群发邮件
【发布时间】:2015-03-16 22:25:24
【问题描述】:

我在 Django 应用程序中有一个功能,可以向所有注册用户发送电子邮件,我目前正在使用“EmailMessage”,它运行良好,但每个人都可以看到其他所有收件人的电子邮件,这是不需要的。

有没有办法使用 Django 邮件功能隐藏收件人?

谢谢。

【问题讨论】:

    标签: django django-email


    【解决方案1】:

    当你实例化 EmailMessage 类时,你可以提供例如示例的密件抄送属性。

    这里是 EmailMessage 类

    class EmailMessage(object):
    """
    A container for email information.
    """
    content_subtype = 'plain'
    mixed_subtype = 'mixed'
    encoding = None     # None => use settings default
    
    def __init__(self, subject='', body='', from_email=None, to=None, bcc=None,
                 connection=None, attachments=None, headers=None, cc=None):
    

    因此,如果您向密件抄送收件人提供属性名称。您可以将目标电子邮件设置为密件抄送收件人。

    message = EmailMessage('hello', 'body', bcc=['user@email.com',])
    message.send()
    

    【讨论】:

      【解决方案2】:

      http://en.wikipedia.org/wiki/Blind_carbon_copy

      https://docs.djangoproject.com/en/1.7/topics/email/

      绝对密件抄送每个地址,这应该为任何收件人隐藏它们。根据文档的外观,您需要创建自己的 EmailMessage 而不是使用预定义的包装器。

      【讨论】:

      • 有用的答案,你是对的。我只是将另一个作为示例接受。
      【解决方案3】:

      如果您想使用 send_mass_mail() 函数发送群发电子邮件,可以尝试这种代码格式。

      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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-09-23
        • 1970-01-01
        • 2020-11-05
        • 2019-07-23
        • 2016-01-21
        • 2020-02-08
        • 2023-04-11
        相关资源
        最近更新 更多