无法向超过2个电子邮件地址发送电子邮件

时间:2013-06-12 19:34:13

标签: django django-models django-forms django-templates django-views

models.py

class FollowerEmail(models.Model):
    report = models.ForeignKey(Report)
    email = models.CharField('Email', max_length=100)

views.py

def what(request):

    """"""
    follower = FollowerEmail.objects.filter(report=report)
    list=[]        
    for email in follower:
        list.append(email.email)
    """"""""
     if 'send_email' in request.POST:
            subject, from_email, to = 'Notification',user.email, person.parent_email
            html_content = render_to_string('report/print.html',{'person':person,
                                                                 'report':report,
                                                                 'list':list,
                                                                  }) 
            text_content = strip_tags(html_content) 
            msg = EmailMultiAlternatives(subject, text_content, from_email, [to],bcc=[list], cc=['monKarek@live.com'])
            msg.attach_alternative(html_content, "text/html")
            msg.send()

以上是我的view.py发送电子邮件,电子邮件正在发送到“to”地址正确。问题是与bcc标签。我正在从FollowerEmail表中取电子邮件并制作一个列表。我正在将该列表传递给bcc ,因为bcc电子邮件ID列表会很大,将超过3个。

如果列表中有超过2个电子邮件ID,则应用程序不发送邮件,如果是两个或一个,则应用程序正在发送邮件。可能是什么问题

由于

1 个答案:

答案 0 :(得分:1)

你有一个错字。

list=[]        
for email in follower:
    list.append(email.email)

此时list已经是Python list(你应该重命名这个变量,因为这很混乱而且不是一个好习惯)。

然后你用它作为:

EmailMultiAlternatives(..., bcc=[list], ...)

这就是拼写错误。您传递的是包含列表项的列表,而您应该只传递一个字符串列表:

EmailMultiAlternatives(..., bcc=list, ...)