【发布时间】:2011-06-18 18:19:14
【问题描述】:
我在尝试发送电子邮件时收到以下错误,其中我为“收件人”参数提供了一个电子邮件地址元组。
> 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 = ["foo@bar.com", "foo2@bar.com", "foo3@bar.com"]
部分堆栈跟踪:
> 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
【问题讨论】:
-
settings.MAIL_LIST的最后一个元素应该是:"foo3@bar.com"。你错过了"。 -
谢谢。修复有问题。在实际代码中不是问题。
-
错误很明显。
self.to是一个元组。你能粘贴print self.to的输出吗? -
@AA:这是不正确的。
self.to的第一个元素是一个元组。 @Andrew:settings.MAIL_LIST定义后有逗号吗? -
不,我在 MAIL_LIST 定义之后没有逗号。我应该吗?
标签: python django email typeerror