Essa função permite enviar e-mails automaticamente com base em uma planilha Excel que contém os dados dos destinatários, assunto, corpo do e-mail e anexos.


📘 Descrição

A função combina leitura de arquivos Excel com automação de teclado para facilitar o envio de e-mails em massa.


📂 Aplicação

Essa função é ideal para:


📋 Exemplo de Planilha Excel

Email TITULO CORPO DE EMAIL CAMINHO ANEXO
[email protected] Relatório Mensal Prezado cliente... C:\Documentos\Relatorio.pdf
[email protected] Contrato Segue anexo... C:\Documentos\Contrato.pdf

🛠 Código Python

python
Copy code
import pandas as pd
import pyautogui
import time

def read_excel(file_path):
    # Lê o arquivo Excel e retorna um DataFrame
    df = pd.read_excel(file_path)
    return df

def send_email_via_automation(email, subject, body, attachment_path):
    """
    Envia um email usando automação de teclado.
    """
    time.sleep(5)  # Atraso para abrir o programa de e-mail

    # Função para localizar e clicar em imagens na tela
    def click_image(image_path):
        location = pyautogui.locateCenterOnScreen(image_path, confidence=0.8)
        if location:
            pyautogui.click(location.x, location.y)
        else:
            print(f"Imagem {image_path} não encontrada.")

    # Clica no botão de novo email
    click_image(r'C:\\Users\\Usuario\\Desktop\\enviaremail.png')
    time.sleep(3)

    # Preenche os campos do email
    pyautogui.typewrite(email)
    pyautogui.press('tab')
    pyautogui.press('tab')
    pyautogui.typewrite(subject)
    time.sleep(1)
    pyautogui.press('tab')
    pyautogui.typewrite(body)

    # Adiciona um anexo
    click_image(r'C:\\Users\\Usuario\\Desktop\\anexar.png')
    time.sleep(3)
    pyautogui.typewrite(attachment_path)
    pyautogui.press('enter')
    time.sleep(5)

    # Envia o email
    pyautogui.hotkey('ctrl', 'enter')

def main():
    excel_file_path = r'C:\\Users\\Usuario\\Desktop\\Documentos\\Planilha\\email.xlsx'
    df = read_excel(excel_file_path)

    for index, row in df.iterrows():
        send_email_via_automation(row['Email'], row['TITULO'], row['CORPO DE EMAIL'], row['CAMINHO ANEXO'])

if __name__ == "__main__":
    main()


🖥 Exemplo de Uso

  1. Cenário: