【问题标题】:Send result of query in email body using python使用 python 在电子邮件正文中发送查询结果
【发布时间】:2015-12-14 22:27:45
【问题描述】:

基本上,我试图在电子邮件正文中发送查询结果,但无法弄清楚。我测试了 SQL 查询的代码,它独立工作。我也可以发邮件没问题。很难把它们放在一起。然后我尝试将查询结果转换为字符串,但这不起作用。这是我的代码:

import smtplib
import pyodbc
import pandas as pd

cnxn = pyodbc.connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};"
                      r"DBQ=\\Location.accdb;")

query = """SELECT *;
        """

df = pd.read_sql(query, cnxn)

remail = "sendto@gmail.com"

smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
smtpObj.ehlo()
smtpObj.starttls()

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

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

smtpObj.quit()'

有什么想法吗?

【问题讨论】:

  • 任何错误信息?另外,string 是什么? Python 中没有这样的关键字。如果使用 2.x,也许你的意思是 strunicode
  • str 不起作用。错误是 'smtpObj.sendmail('from@gmail.com', remail, Subject: \n'dfquery) ^ SyntaxError: invalid syntax
  • 请更具体。

标签: python sql pandas


【解决方案1】:

改变这个 -

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

到 -

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

【讨论】:

  • 不起作用。错误:smtpObj.sendmail('from@gmail.com', remail, 'Subject: \n'dfquery) ^ SyntaxError: invalid syntax
  • 我没有看到另一部分干扰了我的代码,但这修复了我上面的代码。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 2020-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多