✅ Percorrer a caixa de entrada e mover para a pasta XX todos os e-mails com assunto XXZ do remetente Y
com um loop contínuo (while) que só será finalizado quando não houver mais emails que atendam aos critérios
# Script com a finalidade de atraves de um determinado email e assunto, direcioná-los todos para uma pasta específica
import win32com.client
# Conectar ao Outlook
outlook = win32com.client.Dispatch("Outlook.Application")
namespace = outlook.GetNamespace("MAPI")
# Acessar a caixa de entrada
caixa_entrada = namespace.GetDefaultFolder(6) # 6 é o índice para a Caixa de Entrada
pasta_destino = None
# Procurar pela pasta de destino
for pasta in caixa_entrada.Folders:
if pasta.Name == "00. chamados | TI":
pasta_destino = pasta
break
# Se a pasta de destino não foi encontrada, informe ao usuário
if not pasta_destino:
print("A pasta '00. chamados | TI' não foi encontrada.")
else:
total_movidos = 0 # Contador de e-mails movidos
emails_para_mover = True
while emails_para_mover:
emails_para_mover = False
# Carregar a lista de emails novamente a cada loop
mensagens = caixa_entrada.Items
mensagens.Sort("[ReceivedTime]", True) # Ordena os emails por data, do mais recente para o mais antigo
for mensagem in mensagens:
try:
# Verificar se o item é um e-mail
if mensagem.Class == 43: # 43 é a classe para e-mails
# Verificar assunto e remetente
if mensagem.Subject == "Bloqueio devido politica de SI" and mensagem.SenderEmailAddress == "seginfo@xxxx.com.br":
# Mover o e-mail para a pasta de destino
mensagem.Move(pasta_destino)
total_movidos += 1
emails_para_mover = True # Ainda há emails para mover
print(f"Mover e-mail: {mensagem.Subject} de {mensagem.SenderEmailAddress} para {pasta_destino.Name}.")
except Exception as erro:
print(f"Ocorreu um erro ao processar a mensagem: {erro}")
if total_movidos == 0:
print("Nenhum e-mail foi movido.")
else:
print(f"Total de e-mails movidos: {total_movidos}.")
✅ Excluir todos os e-mails que estão na caixa de entrada que estão com assunto XX do remetente XXY
# Script com a finalidade de atraves de um determinado email e assunto, excluí-los (de caixa de entrada para lixeira)
import win32com.client
# Conectar ao Outlook
outlook = win32com.client.Dispatch("Outlook.Application")
namespace = outlook.GetNamespace("MAPI")
# Acessar a caixa de entrada
inbox = namespace.GetDefaultFolder(6) # 6 é o índice para a Caixa de Entrada
messages = inbox.Items
deleted_count = 0 # Contador de e-mails excluídos
# Percorrer e-mails na caixa de entrada
for message in messages:
try:
# Verificar se o item é um e-mail
if message.Class == 43: # 43 é a classe para e-mails
# Verificar assunto e remetente
if message.Subject == "Politica de SI" and message.SenderEmailAddress == "seginfo@xx.com.br":
# Excluir o e-mail
message.Delete()
deleted_count += 1
print(f"Excluído e-mail: {message.Subject} de {message.SenderEmailAddress}.")
except Exception as e:
print(f"Ocorreu um erro ao processar a mensagem: {e}")
if deleted_count == 0:
print("Nenhum e-mail foi excluído.")
else:
print(f"Total de e-mails excluídos: {deleted_count}.")