Проблема с smtplib при отправке почты с символами unicode в Python 3.1

Здравствуйте, у меня такая проблема с письмами с юникодом, когда я пытаюсь отправить слова на испанском, например: "Añadir" или другие, система падает, я пробовал то, что написано по этой ссылке: Python 3 smtplib send with unicode characters и не работает.

Вот код моей ошибки:

server.sendmail(frm, to, msg.as_string())
g.flatten(self, unixfrom=unixfrom)
self._write(msg)
self._write_headers(msg)
header_name=h)
self.append(s, charset, errors)
input_bytes = s.encode(input_charset, errors)

UnicodeEncodeError: 'ascii' codec can't encode character '\xf1' in position 7: ordinal not in range(128)

Вот код на сервере:

msg = MIMEMultipart('alternative')
frm = "sales@bmsuite.com"
msg['FROM'] = frm

to = "info@bmsuite.com"
msg['To'] = to
msg['Subject'] = "Favor añadir esta empresa a la lista"

_attach = MIMEText("""Nombre:Prueba; Dirección:Calle A #12.""".encode('utf-8'), _charset='utf-8')
msg.attach(_attach)

server.sendmail(frm, to, msg.as_string())

server.quit()

Спасибо заранее.

15
задан Community 23 May 2017 в 12:34
поделиться

1 ответ

Я нашел очень легкую работу здесь на ( https://bugs.python.org/issue25736):

msg = '''your message with umlauts and characters here : <<|""<<>> ->ÄÄ">ÖÖÄÅ"#¤<%&<€€€'''
server.sendmail(mailfrom, rcptto, msg.encode("utf8"))
server.quit()

Так, чтобы закодировать те unicode знаки правильный путь, добавляют

msg.encode("utf8") 

в конце sendmail команды.

3
ответ дан 1 December 2019 в 00:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: