Как отправить результаты SQL-запроса на электронную почту в Python - PullRequest
0 голосов
/ 08 октября 2019

Код ниже отправляет письмо на мой внешний вид. Но электронная почта пуста, а имена столбцов в запросе напечатаны в строке темы, а тело письма пусто, и я не вижу результатов запроса.

import smtplib

import pyodbc

import pandas as pd

myconn = pyodbc.connect('Driver='{SQL Server}',host='', database='',user='',password='', Trusted connection='yes')

query = """SELECT *;"""

df = pd.read_sql(query, myconn)

remail = "sendto@gmail.com"

smtpObj = smtplib.SMTP('smtp-outlook.com', 587)

smtpObj.ehlo()

smtpObj.starttls()

smtpObj.login('from@gmail.com','PASSWORD')

smtpObj.sendmail('from@gmail.com', remail, 'Subject:Query results \n' +df.to_string())

smtpObj.quit()

1 Ответ

2 голосов
/ 08 октября 2019

используйте yagmail lib. чтобы отправить письмо

import smtplib
import yagmail
import pandas as pd

import mysql.connector


host= '*****'
user= '*****'
passwd= '******'
db= '********'

mydb = mysql.connector.connect(
     host=host,
     user=user,
     passwd=passwd,
     database=db
     )
myconn =mydb

query = """SELECT * from sa_user;"""

df = pd.read_sql(query, myconn)

receiver = "*******@gmail.com"

print(df)
yag = yagmail.SMTP("*******@gmail.com")
yag.send(
        to=receiver,
        subject="Verify your email",
        contents=df.to_string(), 
        )

print("done")

это мой скриншот папки входящих сообщений

enter image description here

...