19
Июл
2017

Отправка email. Не отправляется письмо с кириллицей

Цель: Нужно отослать письмо на почту. В письме есть кириллические символы.

Проблема: скрипт работает с латинскими символами, но не работает с кириллицей

Скрипт:

import smtplib
TEXT = "Кириллица \n"\
        "Кириллица\n"

TO = 'xxxxxx@gmail.com'
SUBJECT = 'xxxx'
# Gmail Sign In
gmail_sender = 'xxxx@gmail.com'
gmail_passwd = 'xxxxxx'
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login(gmail_sender, gmail_passwd)

BODY = '\r\n'.join(['To: %s' % TO,
                    'From: %s' % gmail_sender,
                    'Subject: %s' % SUBJECT,
                    '', TEXT])
try:
    server.sendmail(gmail_sender, [TO], BODY)
    print('email sent')
except:
    print('error sending mail')
server.quit()

Ошибка:

Traceback (most recent call last):
  File "C:/Users/babai/PycharmProjects/test/mail.py", line 47, in <module>
    server.sendmail(gmail_sender, [TO], BODY)
  File "C:\Program Files (x86)\Python36-32\lib\smtplib.py", line 854, in sendmail
    msg = _fix_eols(msg).encode('ascii')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 63-74: ordinal not in range(128)

На сколько я понимаю проблема в кодировке. Тоесть модуль smtplib работает только с ANSII ??

Источник: https://ru.stackoverflow.com/questions/694112/%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0-email-%D0%9D%D0%B5-%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%81-%D0%BA%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%86%D0%B5%D0%B9

Share

Тебе может это понравится...