estou desenvolvendo um código de automação para baixar em PDF emails que cairem em uma pasta especifica do outlook, porem pelo que vi o código parou de funcionar por conta da verificação de dois fatores, pesquisando um pouco descobri que talves tenha que gerar um token no Authenticator
aqui está o código caso nescessario:
import time
from exchangelib import Credentials, Account, DELEGATE
import pdfkit
import os
Configurações do Outlook Web
email_address = ""
password = ""
outlook_folder_name = "teste" # Pasta do Outlook a ser monitorada
download_path = r"C:\Users\BrianD\Desktop\email" # Pasta de destino para salvar os PDFs
Configurações do PDF
pdf_options = {
"quiet": "",
"no-images": "",
}
Configurações de Conexão
credentials = Credentials(email_address, password)
account = Account(email_address, credentials=credentials, autodiscover=True, access_type=DELEGATE)
Encontrar a pasta específica no Outlook
outlook_folder = None
for folder in account.root.walk():
if folder.name == outlook_folder_name:
outlook_folder = folder
break
if not outlook_folder:
print(f"A pasta '{outlook_folder_name}' não foi encontrada no Outlook.")
exit()
Loop principal
while True:
# Obter emails não lidos na pasta especificada
new_emails = outlook_folder.filter(is_read=False)
# Processar novos emails
for email in new\_emails:
# Converter email para PDF
pdfkit\_config = pdfkit.configuration(wkhtmltopdf=r'D:\.Projetos\Brian Damada\Aprendizado\Programação\Python\TESTES\Fase 2\9. Salvar Email\wkhtmltox\bin\wkhtmltopdf.exe')
pdf\_filename = f"{download\_path}\\{email.subject}.pdf"
pdfkit.from\_string(email.body, pdf\_filename, configuration=pdfkit\_config, options=pdf\_options)
# Marcar o email como lido após o download
email.is\_read = True
email.save()
# Aguardar 2 segundos antes de verificar novamente
time.sleep(2)
lembrando que isso é para o outlook web.