# settings.py
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
# view.py
from django.core.mail import send_mail
def send_letter(request):
the_text = 'this is a test of a really long line that has more words that could possibly fit in a single column of text.'
send_mail('some_subject', the_text, 'me@test.com', ['me@test.com'])
Приведенный выше код представления Django приводит к текстовому файлу, который содержит пунктирную строку:
this is a test of a really long line that has more words that could possibl=
y fit in a single column of text.
-------------------------------------------------------------------------------
Кто-нибудь знает, как его изменить, чтобы в выходном файле не было разрывов строк?Есть ли какая-то настройка в Django, которая контролирует это?Версия 1.2 Django.
Обновление - для резервного копирования уровня и объяснения моей первоначальной проблемы :) Я использую приложение django-registration , которое отправляет электронное письмо с ссылка для активации аккаунта .Эта ссылка представляет собой длинный URL со случайным токеном в конце (более 30 символов), в результате чего строка разрывается в середине токена.
В случае, если проблема заключалась в использовании Django на основе файла EmailBackend, я переключился на бэкэнд smtp и запустил встроенный сервер Python smtpd в режиме отладки.Это сбрасывало мое электронное письмо в консоль, где оно все еще было сломано.
Я уверен, что django-registration работает, его используют миллионы людей :) Так что, должно быть, ясделано неправильно или неправильно настроено.Я просто понятия не имею, что.
Обновление 2 - согласно сообщению в списке Django, это действительно базовый Python email.MIMEText объект , который, если он правильный, только выдвигает проблемуназад немного больше.Это все еще не говорит мне, как это исправить.Глядя на документы, я не вижу ничего, что упоминало бы перенос строк.
Обновление 3 (вздох) - я исключил, что это проблема объекта MIMEText.Я использовал чистую программу на Python и smtplib / MIMEText для создания и отправки тестового электронного письма, и оно работало нормально.Он также использовал charset = "us-ascii", который, как кто-то предложил, был единственным набором символов для , а не текста в объектах MIMEText.Я не знаю, правильно это или нет, но я посмотрел более внимательно на мой вывод электронной почты Django, и у него есть кодировка "utf-8".
Может быть проблема в неправильной кодировке?И если да, то как мне изменить в Django?
Вот весь поток вывода из электронной почты Django:
---------- MESSAGE FOLLOWS ----------
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Subject: some_subject
From: me@test.com
To: me@test.com
Date: Tue, 17 May 2011 19:58:16 -0000
this is a test of a really long line that has more words that could possibl=
y fit in a single column of text.
------------ END MESSAGE ------------