python-3.x - Pandas 发送包含数据框作为可视表的电子邮件

标签 python-3.x pandas email

举个例子:

df_1 = ([1,2,3,5])
df_2 = ([10,20,30,50])
df_test =pd.concat([pd.DataFrame(df_1),pd.DataFrame(df_2)],axis=1)

如何通过 gmail 发送电子邮件,并使用此数据框使其看起来像表格?

enter image description here

这是我尝试过的:

import smtplib

server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr , ".......")

msg = df_test.to_html()
server.sendmail(fromaddr, toaddr, msg)
server.quit()

最佳答案

尝试:

  • 使用 str.format 将 DF html 附加到电子邮件正文 html。

例如:

from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from smtplib import SMTP
import smtplib
import sys


recipients = ['ToEmail@domain.com'] 
emaillist = [elem.strip().split(',') for elem in recipients]
msg = MIMEMultipart()
msg['Subject'] = "Your Subject"
msg['From'] = 'from@domain.com'


html = """\
<html>
  <head></head>
  <body>
    {0}
  </body>
</html>
""".format(df_test.to_html())

part1 = MIMEText(html, 'html')
msg.attach(part1)

server = smtplib.SMTP('smtp.gmail.com', 587)
server.sendmail(msg['From'], emaillist , msg.as_string())

关于python-3.x - Pandas 发送包含数据框作为可视表的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50564407/

相关文章:

java - Micronaut 和 Java Mail API

python - Python3中一串非英文字符的正确长度

python - 根据匹配对不同工作表/文件中的值求和

django - 检索邻居的查询太慢

python - 访问 MultiIndexed groupby 的键

python - 如何从另一列的范围内计算一列的平均值

email - 为什么我在Grails中的邮件中收到错误的链接

php imap 从电子邮件地址获取

python - 为什么我的循环在 HTML 中没有显示出好的结果?

python - 按最后 4 位数字升序排列字典的值