Или python email unicode.
Т.к. я начал понемногу «питонить», то теперь буду маленькие заметки для себя писать.
Понадобилось мне отправить e-mail. С текстом на английском проблем не возникло, а вот с текстом на русском — выдавалась ошибка:
UnicodeEncodeError: 'ascii' codec can't encode character
Быстрый гуглежь начал заваливать меня азами того, как в Python нужно работать с Юникодом, вместо того, чтобы дать простой и быстрый ответ на вопрос:
Как преобразовать строковую переменную, имеющее значение, состоящее из символов, например кириллицы, так, чтобы оно не выдавало ошибки.
У меня сия ошибка возникла при попытке отправить письмо со строкой, состоящей из кириллических символов. Исправил так:
import smtplib
from email.mime.text import MIMEText
server = smtplib.SMTP('smtp.your.server.com', 25)
#Send the mail
msg = MIMEText('\n Тук-тук, проснись Нео, ты увяз в Матрице!'.encode('utf-8'), _charset='utf-8')
server.sendmail("from_email@server.com", "to_email@server.com", msg.as_string())
Может, не идеально, но работает.