2011-01-31 3 views
0

'To'パラメータに電子メールアドレスのタプルを指定して電子メールメッセージを送信しようとすると、次のエラーが発生します。TupleをDjango EmailMessageの 'To'パラメータとして渡す際にエラーが発生しました。

> TypeError: sequence item 0: expected 
> string, tuple found 

私はEmailMessage classのためのDjangoのドキュメントを見ていると、これは問題ないはず示します。誰が間違っている可能性について何か提案がありますか?

私はそうのようなEmailMessageのオブジェクトを作成:

spam = EmailMessage("Some title - %s \"%s\"" % (subject, task.name), message, 
           "%s <%s>" % (user.get_full_name(), user.email), settings.MAIL_LIST) 
spam.content_subtype = "html" 
spam.send() 

settings.MAIL_LIST = ["[email protected]", "[email protected]", "[email protected]"] 

部分的なスタックトレース:

> File "/myClass/Mail.py", line 217, in 
> contact_owner 
>  spam.send() 
> 
> File 
> "/port/python-environments/port_web/lib/python2.6/site-packages/django/core/mail.py", 
> line 281, in send 
>  return self.get_connection(fail_silently).send_messages([self]) 
> 
> File 
> "/port/python-environments/port_web/lib/python2.6/site-packages/django/core/mail.py", 
> line 185, in send_messages 
>  sent = self._send(message) 
> 
> File 
> "/port/python-environments/port_web/lib/python2.6/site-packages/django/core/mail.py", 
> line 199, in _send 
>  email_message.message().as_string()) 
> 
> File 
> "/port/python-environments/port_web/lib/python2.6/site-packages/django/core/mail.py", 
> line 253, in message 
>  msg['To'] = ', '.join(self.to) 
> 
> TypeError: sequence item 0: expected 
> string, tuple found 
+0

'settings.MAIL_LIST'の最後の要素は' '[email protected] ''です。 – user225312

+0

ありがとうございました。実際のコードでは問題ありません –

+1

'self.to'はタプルです。' print self.to'の出力をペーストできますか? – user225312

答えて

0

これは私の上記の情報が実際には間違っているため、疑問の余地はありませんでした。私のエラーは、エラーメッセージの説明とほとんど同じでした。私はタプルのリストを望むコードに文字列の電子メールアドレスのリストを渡していました。

0

送信HTML形式の電子メールの例

from django.core.mail import EmailMultiAlternatives 
from django.utils.html import strip_tags 

subject = render_to_string('cart/email/order_subject.txt',c) 
html_body = t.render(Context(c)) 
text_body = strip_tags(html_body) 

msg = EmailMultiAlternatives(subject, text_body, None, sc.settings['email_order'].split(',')) 
msg.attach_alternative(html_body, "text/html") 
msg.send() 
関連する問題