Найти - Пользователи
Полная версия: smtp отправка письма (кодировка)
Начало » Python для экспертов » smtp отправка письма (кодировка)
1
carter85
Всем привет.
Вообщем потратил на решение своей проблемы уже два жня, не смог разобраться.
Вообщем отправляю письмо скриптом, а на почту приходят каракули в теле письма
python 2.7
from email.mime.text import MIMEText
         msg_txt = MIMEText("русский текст", 'plain', "utf-8")
отвеь такой
Content-Type: text/plain; charset=“utf-8”
MIME-Version: 1.0
Content-Transfer-Encoding: base64

Может кто нибудь поможет.
FishHook
PEP 263, соблюдены требования?
carter85
ДА
Вот весь код функции

#!/usr/bin/python
# -*- coding: utf-8 -*- 
import smtplib
import sys
import codecs
import email.mime.text
from email.mime.text import MIMEText
def  mail(txtparam):
        fromaddr = 'FROM <it@from.com>'
        toaddr = 'Administrator <to@mail.ru>'
        subj = "тема письма"
        msg_txt = txtparam 
        msg_txt = MIMEText("текст письма", 'plain', "utf-8")
        msg = "From: %s\nTo: %s\nSubject: %s\n\n%s"  % ( fromaddr, toaddr, subj, msg_txt)
        server = smtplib.SMTP("mail.gol.ru:25')
        server.sendmail(fromaddr, toaddr, msg)
        server.quit()
agalen
У тебя после subject вставляется два перевода строки, соответственно далее все считается текстом письма и не декодируется при приеме. Сообщение надо строить так:
        msg = MIMEText("текст письма", 'plain', "utf-8")
        msg["Subject"] = subj
        msg["From"] = fromaddr
        msg["To"] = toaddr
carter85
agalen
У тебя после subject вставляется два перевода строки, соответственно далее все считается текстом письма и не декодируется при приеме. Сообщение надо строить так:
а что это за синтаксис такой?
msg["Subject"]
? пробовал использовать в обычном интерпретаторе питона, выходит ошибка.
Budulianin
carter85
а что это за синтаксис такой?
msg

>>> d = {}
>>> d['1'] = 1
>>> d['1']
1
>>> d.__getitem__('1')
1
>>> help(d.__getitem__)
Help on built-in function __getitem__:
__getitem__(...)
    x.__getitem__(y) <==> x[y]

carter85
? пробовал использовать в обычном интерпретаторе питона, выходит ошибка.

У тебя есть необычный интерпретатор ?
alrusdi
В python < 3 нужно же еще юникодные строки специально обозначать
msg_txt = MIMEText(u"русский текст", 'plain', "utf-8")
?
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