HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 04.05.2010, 11:13
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
С нами: 9427413

Репутация: 973


По умолчанию

Цитата:
Сообщение от XPYMGT  
Как отправить письмо в utf-8 (Python 3.1)
Код:
import smtplib
from email.mime.text import MIMEText
хост = "smtp.mail.ru"
пользователь = "mishustin.sergei"
пароль = "*** вам а не пароль"
от_кого = "mishustin.sergei@mail.ru"
адресаты = ["komprenda@gmail.com"]
заголовок = "Тест"
текст_сообщения = "Проверка"
соо = MIMEText(текст_сообщения, 'plain', 'utf-8')
соо['From'] = от_кого
соо['To'] = адресаты[0]
соо['Subject'] = заголовок
обьект = smtplib.SMTP(хост, 2525)
обьект.login(пользователь, пароль)
обьект.sendmail(от_кого, кому, соо.as_string())
обьект.quit()
Приводит к ошибке:

Код:
Traceback (most recent call last):
  File "D:\Program Files\Python31\lib\email\message.py", line 269, in set_charset
    cte(self)
TypeError: 'str' object is not callable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\Program Files\Python27\mail.ru\src\mail.py", line 10, in <module>
    соо = MIMEText(текст_сообщения, 'plain', 'utf-8')
  File "D:\Program Files\Python31\lib\email\mime\text.py", line 30, in __init__
    self.set_payload(_text, _charset)
  File "D:\Program Files\Python31\lib\email\message.py", line 234, in set_payload
    self.set_charset(charset)
  File "D:\Program Files\Python31\lib\email\message.py", line 271, in set_charset
    self._payload = charset.body_encode(self._payload)
  File "D:\Program Files\Python31\lib\email\charset.py", line 380, in body_encode
    return email.base64mime.body_encode(string)
  File "D:\Program Files\Python31\lib\email\base64mime.py", line 94, in body_encode
    enc = b2a_base64(s[i:i + max_unencoded]).decode("ascii")
TypeError: must be bytes or buffer, not str
Попробуй так :
Код:
текст_сообщения = "Проверка".encode("UTF-8")
В 3.1 ИМХО только неразберихи добавлось с этим bytes типом данных. Фактически он обозначает собой str из 2.6 в определенной кодировке. То же что обьявлялось в 2.6 как string = u"Вася" в 3.1 обьявляется как строка = "Вася", т.е. то что ты воспринимаешь как str из 2.6 в 3.1 фактически является unicode из 2.6. По крайней мере я это так понял.
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.