У меня проблема с отправкой писем с русским текстом с моего сервера. Я отправляю электронные письма следующим образом:
from django.core.mail import EmailMultiAlternatives
message = EmailMultiAlternatives(
'some subject',
'',
'[email protected]',
['[email protected]']
)
message.attach_alternative(unicode_text_with_html, "text/html")
message.send()
Когда это письмо приходит на почтовый сервис (например, gmail.com) иногда встречается пара испорченных символов - Ð � вместо буквы. Другие буквы (даже те же буквы) не повреждаются. Когда я указываю кодировку cp1251 (т.е. message.encoding = 'cp1251'
), электронные письма не повреждаются. Но есть почтовые сервисы, которые не принимают кодировку cp1251 и выдают пользователю ошибку, когда он пытается прочитать сообщение.
Когда я использую сервер электронной почты на основе файлов с кодировкой utf-8, я также не получаю поврежденных символов в теле сообщения. И кодировка установлена в utf-8.
Интересно, как можно так разбить сообщение в кодировке utf-8. Могу ли я что-нибудь сделать, чтобы избавиться от этих символов?
P.S.: Я использую Postfix в качестве почтового сервера для отправки писем.
ОБНОВЛЕНИЕ: На моем тестовом сервере ситуация была точно такой же. Я удалил Postfix и заменил его Qmail. Все работало нормально. Я поменял его обратно, и символы снова вернулись. Итак, мое последнее предположение состоит в том, что это проблема Postfix. Попробую настроить конфиг.
_(unicode_text_with_html)
- person yuvi   schedule 13.12.2013