Найти - Пользователи
Полная версия: Как модифицировать код, для отправки email в кодировке cp1251, koi8-ru
Начало » Python для экспертов » Как модифицировать код, для отправки email в кодировке cp1251, koi8-ru
1
qman
Нашел скрипт для отправки почты. Но в нем указано что работает только для ASCII символов.


import smtplib
from email.MIMEText import MIMEText
# Open a plain text file for reading. For this example, assume that
# the text file contains only ASCII characters.
fp = open(textfile, ‘rb’)
# Create a text/plain message
msg = MIMEText(fp.read())
fp.close()
msg = ‘The contents of %s’ % textfile
msg = me
msg = you
s = smtplib.SMTP()
s.connect()
s.sendmail(me, , msg.as_string())
s.close()

Как модифицировать код, чтобы можно было отправлять в кодировке cp1251, koi8-ru, utf8?
slivlen
В конструктор передай кодировку.
msg = MIMEText(fp.read(), 'plain', charset)
В качестве примера можно еще посмотреть django.core.mail.
qman
slivlen
странно как с cp866, utf-8 работает. а с cp1251 приходит письмо с ошибкой

This message uses a character set that is not supported by the Internet
Service. To view the original message content, open the attached
message. If the text doesn't display correctly, save the attachment to
disk, and then open it using a viewer that can display the original
character set. <<message.txt>>

может подскажите откуда проблема ?
я готов на UTF-8 хранить файлы программ, но не возникнет ли у меня из за этого проблем?
ОС win xp, python 2.5.1

Еще вопрос, как сделать читаемой тему письма? при использовании кодировки файла UTF-8?
slivlen
qman
странно как с cp866, utf-8 работает. а с cp1251 приходит письмо с ошибкой
Попробуй указать cp-1251, может поможет :)
qman
Еще вопрос, как сделать читаемой тему письма? при использовании кодировки файла UTF-8?
msg['Subject'] = email.Header.Header('The contents of %s' % textfile, charset)

qman
я готов на UTF-8 хранить файлы программ, но не возникнет ли у меня из за этого проблем?
Не должно
qman
Все заработало.
Подскажите как можно найти описание на
email.Header.Header('The contents of %s' % textfile, charset)
чтобы не задавать глупые вопросы на форуме.
запустил pydoc, ввел email , pydoc показал описание на email нашел класс header,
email.Header.
но откуда можно выяснить что есть еще
Header('The contents of %s' % textfile, charset)
???
Спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB