2016-09-23 72 views
0

我遇到了此错误:link,同时尝试使用Django EmailMultiAlternatives发送邮件。我试图寻找这个错误,但没有运气,我也尝试删除或更改每个变量的电子邮件,但没有运气。发送电子邮件时,字符串索引超出范围

这是代码:

def spremembapodatkovproc(request): 
    if request.method == 'POST': 
     req_id = request.POST.get('req_num', 'Neznan ID zahtevka') 
     old_email = request.user.email 
     old_name = request.user.get_full_name 
     new_email = request.POST.get('email_new', 'Nov e-mail ni znan') 
     new_fname = request.POST.get('fname_new', 'Novo ime ni znano') 
     dokument = request.FILES.get('doc_file') 
     komentar = request.POST.get('comment', 'Ni komentarja') 
     # try: 
     plaintext = get_template('email/usr-data-change.txt') 
     htmly = get_template('email/usr-data-change.html') 

     d = Context(
      { 
       'old_email': old_email, 
       'old_fname': old_name, 
       'new_email': new_email, 
       'new_fname': new_fname, 
       'req_id': req_id, 
       'komentar': komentar, 
       'user_ip': request.META.get('REMOTE_ADDR', 'IP Naslova ni mogoče pridobiti.') 
      } 
     ) 

     subject, from_email, to = 'eBlagajna Sprememba podatkov', '[email protected]', ["[email protected]"] 
     text_content = plaintext.render(d) 
     html_content = htmly.render(d) 
     print(text_content) 
     msg = EmailMultiAlternatives(subject, text_content, from_email, [to]) 
     msg.attach_alternative(html_content, "text/html") 

     msg.mixed_subtype = 'related' 

     for f in ["templates\\email\\img1.png"]: 
      fp = open(os.path.join(BASE_DIR, f), 'rb') 
      msg_img = MIMEImage(fp.read()) 
      fp.close() 
      msg_img.add_header('Content-ID', '<{}>'.format(f)) 
      msg.attach(msg_img) 
     msg.send() 

谢谢您的帮助。

+0

你有'to = [“[email protected]”]',并且你试图在初始化'EmailMultiAlternatives'实例的时候把它包装在'[]'括号中。尝试将'EmailMultiAlternatives(subject,text_content,from_email,[to])'改为'EmailMultiAlternatives(subject,text_content,from_email,to)' –

+0

谢谢!有用。 – AndyTemple

回答

3

问题在于电子邮件的冗余包装列表在另一个列表中。

所以基本上可变to = ["[email protected]"],然后当线运行

msg = EmailMultiAlternatives(subject, text_content, from_email, [to]) 

它包裹to一个更多的时间与[ ]括号。和[to] = [["[email protected]"]],但它应该是简单的列表。所以通过更改问题行到

msg = EmailMultiAlternatives(subject, text_content, from_email, to) 

一切正常。

相关问题