[Python] Estou com um bug na biblioteca SMTP no python [fechada]

Discussão em 'Python' iniciado por Stack, Outubro 30, 2024.

  1. Stack

    Stack Membro Participativo

    Estou criando uma aplicacao que pegue emails e nomes em um banco de dados e que envie automaticamente para esses email, so q eu estou com um bug no meu codigo que so envia para o primeiro email, os emails passam nas variaveis mais quando chega pra fazer o envio nao envia, ele so envia pro primeiro email pego do banco de dados, alguem pode me ajudar ?


    coneccao = smtplib.SMTP("smtp.gmail.com",587,timeout=30)
    coneccao.starttls()
    coneccao.login(" retirei meu email pra maior privacidade ",codigo)
    coneccao.set_debuglevel(1)

    def definindo_corpo_email(addres : str,body_email):
    corpo_email = email.Message()
    corpo_email["from"] = " retirei meu email pra maior privacidade "
    corpo_email['to'] = addres
    corpo_email['subject'] = "Resumo das Moedas"
    corpo_email.add_header("Content-Type","text/html")
    corpo_email.set_payload(body_email,"utf-8")
    return corpo_email



    def Enviar_email(addres : str, nome : str):

    body_email = f''' codigo html aqui '''

    try:
    coneccao.sendmail("retirei meu email pra maior privacidade ",addres,definindo_corpo_email(addres,body_email).as_string())

    print('passou',addres)
    except Exception as e :
    print("erro",e)

    # Passando os emails pelo for
    cursor_db.execute("SELECT email,nome FROM usuarios ")

    for User_mail,nome in cursor_db.fetchall():
    Enviar_email(User_mail,nome)
    print(f"enviou {User_mail},{nome}")
    sleep(4)




    Eu criei uma função para enviar emails e tentei utilizar um loop for para passar os endereços de email e os nomes dos usuários obtidos do banco de dados (DB). No entanto, a função só está enviando o primeiro email da lista e não processa os demais endereços. Estou enfrentando dificuldades em fazer com que todos os emails sejam enviados corretamente

    Continue reading...

Compartilhe esta Página