1
resposta

PYTHON E SMTPLIB

Prezados, boa tarde!! Estou fazendo um script para um envio de e-mail automático baseado numa query do MYSQL. Porém, individualmente, cada classe e método funciona, mas quando tento integrar os mesmos, está dando erro, só não sei "onde" e como consertar.. Alguém pode me ajudar a descobrir onde está o erro? Tendo em mente que o método "conectar" é onde fiz a conexão no banco de dados, na classe CONEXAO, e então, criaria um cursor a partir dela. A mesma funciona apenas para conectar, mas não funciona quando tento juntar com a query e o envio de e-mail.

import smtplib
import email.message
import schedule
import time
import pyodbc
import Conexao



class EnvioEmail():

    def __init__(self,rows):
        self._rows= rows
        super().__init__(rows)


def enviarEmail():
    server = smtplib.SMTP('smtp.office365.com:587')
    msg = email.message.Message()
    msg['From'] = 'email'
    msg['To'] = 'email'
    password = "senha"

    msg['Subject'] = 'Titulo do email'
    email_content = """
    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
       <title>Nova Oportunidade</title>
    </head>
    <body>

    <p> Menssagem </p>

    </body>
    </html>

    """
    msg.add_header('Content-Type', 'text/html')
    msg.set_payload(email_content)

    s = smtplib.SMTP('smtp.office365.com: 587')
    s.starttls()


    s.login(msg['From'], password)

    s.sendmail(msg['From'], [msg['To']], msg.as_string())








def Consulta(Conexao):
    cursor = Conexao.conectar()


    cursor.execute(
        '''Select  t1.CardCode,
    T2.CardCode,
    T3.U_upd_2_status as status,
     CAST (GETDATE() AS varchar) as DATAATUAL,
     T3.U_upd_17_data,



    T3.U_upd_4_modelo as modelo




    FROM ORDR     T1

    INNER JOIN  OOPR T2  ON T2.CardCode = t1.CardCode

    INNER JOIN OPR2 T3 ON T2.OpprId = T3.opportID

    WHERE 


    T3.U_upd_2_status = 'WON' 
    AND 
    T3.U_upd_4_modelo LIKE '%IMS%'

    ''')

    rows = cursor.fetchall()
    if rows:
        for row in rows:
            enviarEmail()




Consulta(Conexao)

egue o código:

1 resposta

Oi Eduardo, como você está?

Estou aqui para te ajudar, mas poderia me explicar com mais detalhes qual erro está ocorrendo? O que mostra no console? Como está sua função de conexão?

Fico no aguardo.