Ошибка передачи Tuple как параметра 'To' в Django EmailMessage - PullRequest
0 голосов
/ 31 января 2011

При попытке отправить сообщение электронной почты, в котором я указываю параметру «Кому» набор адресов электронной почты, я получаю следующую ошибку.

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

Я просмотрел документацию Django для EmailMessage class , и это указывает, что это должно быть хорошо.У кого-нибудь есть предложения о том, что может пойти не так?

Я создаю объект 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

Ответы [ 2 ]

0 голосов
/ 17 марта 2011

Это оказалось без вопросов, потому что моя информация выше на самом деле неверна.Моя ошибка была в значительной степени то, что описывает сообщение об ошибке.Я передавал список строковых адресов электронной почты в код, желая получить список кортежей.

0 голосов
/ 31 января 2011

Пример отправки электронного письма в формате 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...