Кодировка электронной почты с использованием Django - PullRequest
0 голосов
/ 27 августа 2018

Мое веб-приложение сохраняет текст на иврите в базе данных Postgres, а затем отправляет его по электронной почте.Я вижу, что текст хорошо хранится в БД, но при отправке в виде электронного письма он выглядит как бред:

× ¢ × • × '× «× ™ × § × ¨, × -× ”× • × ˜ × ¡× ˜ × © × œ ×” × ”× ª × ¨ × × • × ª ×” × × © × œ × - × • × ª × '× ¢ ×' × ¨ × ™× ª.

Я использую urlllib для удаления текста из БД

urllib.unquote(text)

и EmailSender для отправки электронного письма:

EmailSender().send_html(
    "my email subject",
    email_content,
    [email],
    headers=headers,
    fail_silently=True
)

Чтоможет быть причиной этого?

1 Ответ

0 голосов
/ 27 августа 2018

Вероятно, это происходит потому, что исходный текст находится в формате UTF-8, а не в ASCII.

Вы должны взглянуть на Полезные функции утилит .

Там вы найдете метод smart_text(), который, я думаю, решит вашу проблему путем преобразования вашего email_content.


Вы также можете использовать подход кодирования / декодирования.

Прочитайте Стандартные кодировки и попробуйте:

email_content.encode("your_encoding").decode("utf-8")

...