Я использую этот код для входа в свою учетную запись gmail и получения текста из электронного письма от steampowered.
else:
g = gmail.login(emailAddress, emailPassword)
# Check for emails until we get Steam Guard code
for i in range(0, 3):
mails = g.inbox().mail(sender="[email protected]", unread=True)
if mails:
mail = mails[-1]
mail.fetch()
#print re.findall(r"you'll need to complete the process: ([A-Z0-9]{5})", mail.body)
guardCode = re.findall(r"you'll need to complete the process: ([A-Z0-9]{5})", mail.body)[0]
mail.read()
mail.delete()
g.logout()
return guardCode
else:
time.sleep(3)
я получаю
IndexError: индекс списка вне диапазона
В этой строке:
guardCode = re.findall(r"you'll need to complete the process: ([A-Z0-9]{5})", mail.body)[0]
Это потому что
re.findall(r"you'll need to complete the process: ([A-Z0-9]{5})", mail.body)
Возвращает
[]
Итак, список пуст. Почему он пустой?
Это формат письма:
Вы входите в Steam с помощью нового браузера или приложения Steam? Вот код Steam Guard, который вам понадобится для завершения процесса: XXXXX ‹---- Мне нужно это
EDIT: Gmail – это настраиваемый модуль Python, который можно найти здесь. РЕДАКТИРОВАНИЕ № 2. Вот лучшее представление электронной почты:
Уважаемый ХХХ,
Вы входите в Steam с помощью нового браузера или приложения Steam? Вот код Steam Guard, который вам понадобится для завершения процесса:
ХХХХХ
Если вы в последнее время не пытались войти в Steam с устройства, расположенного по адресу XXXX (США), возможно, кто-то еще пытается получить доступ к вашей учетной записи. Вы можете просмотреть дополнительную информацию об этой попытке входа в систему в Интернете.
Если вы подозреваете, что кто-то пытается получить доступ к вашей учетной записи, пожалуйста, выполните одно из следующих действий: