Добрый день. У меня есть скрипт python, который проверяет почтовый ящик на наличие непрочитанных сообщений. Если есть непрочитанные сообщения с вложениями, то выполняется некоторый код (автоматизация Excel). Раньше он работал хорошо; однако сегодня я столкнулся с этой ошибкой при выполнении скрипта:
Не удалось создать кэшированный протокол с ключом ('******** / EWS / Exc hange.asmx', Credentials ('* ****** ',' ******** ')): HTTPSConnectio nPool (host =' ******* ', port = 443): максимальное количество попыток превышено с помощью url: / EW S /Exchange.asmx (вызвано SSLError (SSLCertVerificationError ("имя_хоста" mail.example.com "не соответствует ни из" * .example.com "," example.com "))))
Где example.com - сервер компании.
Я искал некоторые ответы и столкнулся с рекламой, в которой говорилось, что я должен установить Veryfy-ssl в False (учетная запись). Когда я это делаю, я больше не получаю сообщение об ошибке из командной строки, но скрипт просто завершается в 1 се c и ничего не делает.
В чем может быть проблема? Я не сделал никаких изменений в коде, так это вина почтового сервера? Ниже приведен фрагмент кода, который получает вложение от почты:
def get_attachments(login, password, path):
files_list = []
credentials = Credentials(
username=login,
password=password
)
config = Configuration(server=settings.server, credentials=credentials)
account = Account(primary_smtp_address=login,
config=config, autodiscover=False, access_type=DELEGATE)
unread = account.inbox.filter(is_read=False)
attachment_counter = 0
for msg in unread:
msg.is_read = True
msg.save()
for attachment in msg.attachments:
fpath = os.path.join(path, attachment.name)
if os.path.exists(fpath):
attachment_counter += 1
fpath = os.path.join(path, (str(attachment_counter) + attachment.name))
if attachment.name.split(".")[-1].lower() in ['xlsx', 'xls']:
with open(fpath, 'wb') as f:
f.write(attachment.content)
files_list.append(fpath)
return files_list