top of page

Movendo ou excluindo e-mails Outlook com Python

Atualizado: há 6 dias



✅ 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}.")

bottom of page