Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 23, 2011 01:58:26

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Обработка исключения

чтобы вытащить код ошибки
если не работает, примени e.errno
если не работает, примени print(dir(e)), чтобы узнать, как его достать
проверка кода ошибки не даёт среагировать так же на другую ошибку



Офлайн

#2 Ноя. 26, 2011 21:34:13

Passer
От:
Зарегистрирован: 2011-11-20
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка исключения

Если в этом куске:

email_topic = "Topic"
# Mail body
mail_body = "Spam message."
Topic и Spam message. заменить на какой-нибудь русский текст то интерпретатор выдаёт ошибку. Как этого избежать? Как сделать чтобы питон понимал русский язык?



Офлайн

#3 Ноя. 27, 2011 02:07:20

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Обработка исключения

сохранить исходник в кодировке utf-8
либо записать сверху на первой или второй строке # -*- encoding: кодировка_файла -*-
если не помогает, нужен текст ошибки



Отредактировано (Ноя. 27, 2011 02:08:52)

Офлайн

#4 Ноя. 27, 2011 06:45:57

Passer
От:
Зарегистрирован: 2011-11-20
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка исключения

Код ошибки:

Traceback (most recent call last):
File "C:\py3eg\spamer.otvet.mail.ru_1.py", line 53, in <module>
mailServer.sendmail(smtp_address, address, msg.as_string())
File "C:\Python32\lib\email\message.py", line 167, in as_string
g.flatten(self, unixfrom=unixfrom)
File "C:\Python32\lib\email\generator.py", line 88, in flatten
self._write(msg)
File "C:\Python32\lib\email\generator.py", line 141, in _write
self._write_headers(msg)
File "C:\Python32\lib\email\generator.py", line 175, in _write_headers
header_name=h)
File "C:\Python32\lib\email\header.py", line 197, in __init__
self.append(s, charset, errors)
File "C:\Python32\lib\email\header.py", line 275, in append
s.encode(output_charset, errors)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-6: ordinal not in range(128)



Офлайн

#5 Ноя. 27, 2011 22:05:28

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Обработка исключения

попробуй тему оставить английскими, а тело - русскими



Отредактировано (Ноя. 27, 2011 22:06:48)

Офлайн

#6 Ноя. 28, 2011 02:10:07

Passer
От:
Зарегистрирован: 2011-11-20
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка исключения

Спасибо, получилось.



Офлайн

#7 Ноя. 28, 2011 09:41:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Обработка исключения

>>> s = 'абвг'
>>> eh = email.header.Header(s, 'utf-8')
>>> eh.encode()
'=?utf-8?b?0LDQsdCy0LM=?='
>>>
кодируй тему



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version