[Python] Problema com o connect() do smtplib

Discussão em 'Python' iniciado por Stack, Janeiro 17, 2025.

  1. Stack

    Stack Membro Participativo

    No meu curso de python, tem uma aula que ensina a enviar emails. Na aula, o professor usa o módulo smtplib e desse módulo ele usa a classe SMTP() para criar o server, mas quando ele gravou a aula, não precisava dar o server.connect() antes de fazer qualquer coisa com o server. Até aí tudo certo, porque seria só dar o connect(), mas eu estou tendo esse retorno ao fazer isso:

    ConnectionRefusedError: [WinError10061] Nenhuma conexão pôde ser feita porque a máquina de destino as recusou ativamente.

    (usei o 'localhost' e o port 587 dentro do connect())

    O meu código é esse, caso seja necessário:

    from dotenv import load_dotenv
    import os
    import pathlib
    from string import Template
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    import smtplib

    load_dotenv()

    # Caminho arquivo HTML
    CAMINHO_HTML = pathlib.Path(__file__).parent / 'gmail_e_SMTP_arquivo.html'

    # Dados do remetente e do destinatário
    remetente = os.getenv('FROM_EMAIL', '')
    destinatario = remetente

    # SMTP server
    smtp_server = os.getenv('SMTP_SERVER', '')
    smtp_port = 587
    smtp_username = os.getenv('FROM_EMAIL', '')
    smtp_password = os.getenv('EMAIL_PASSWORD', '')

    # Mensagem de texto
    with open(CAMINHO_HTML, 'r') as arquivo:
    texto_arquivo = arquivo.read()
    template = Template(texto_arquivo)
    texto_email = template.substitute(nome='Joâo')

    # Transformar nossa mensagem em MIMEMultipart
    mime_multipart = MIMEMultipart()
    mime_multipart['from'] = remetente
    mime_multipart['to'] = destinatario
    mime_multipart['subject'] = 'Esse é o assunto do email'

    corpo_email = MIMEText(texto_email, 'html', 'utf-8')
    mime_multipart.attach(corpo_email)

    with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.connect('localhost', 587)
    server.ehlo()
    server.starttls()
    server.login(smtp_username, smtp_password)
    server.send_message(mime_multipart)
    print('E-mail enviado com sucesso!')


    Vocês sabem como resolver isso?

    Continue reading...

Compartilhe esta Página