Найти - Пользователи
Полная версия: Обработка исключения
Начало » Python для новичков » Обработка исключения
1 2
py.user.next
чтобы вытащить код ошибки
если не работает, примени e.errno
если не работает, примени print(dir(e)), чтобы узнать, как его достать
проверка кода ошибки не даёт среагировать так же на другую ошибку
Passer
Если в этом куске:
email_topic = "Topic"
# Mail body
mail_body = "Spam message."
Topic и Spam message. заменить на какой-нибудь русский текст то интерпретатор выдаёт ошибку. Как этого избежать? Как сделать чтобы питон понимал русский язык?
py.user.next
сохранить исходник в кодировке utf-8
либо записать сверху на первой или второй строке # -*- encoding: кодировка_файла -*-
если не помогает, нужен текст ошибки
Passer
Код ошибки:

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)
py.user.next
попробуй тему оставить английскими, а тело - русскими
Passer
Спасибо, получилось.
py.user.next
>>> s = 'абвг'
>>> eh = email.header.Header(s, 'utf-8')
>>> eh.encode()
'=?utf-8?b?0LDQsdCy0LM=?='
>>>
кодируй тему
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