Python 在pywin32 outlook电子邮件中发送表

Python 在pywin32 outlook电子邮件中发送表,python,outlook,pywin32,Python,Outlook,Pywin32,我使用类似于以下代码的代码在Python中自动发送电子邮件 如何使表格看起来像是从excel复制到电子邮件中(即表格格式)?目前,它将html格式的表格视为电子邮件正文中的文本,这是非常无用的 import win32com.client import pandas as pd #Parameters data= [{'A' : 'data', 'B': 2, 'C':1.78}, {'A' : 'data', 'B': 22, 'C':1.56},] table = pd.Dat

我使用类似于以下代码的代码在Python中自动发送电子邮件

如何使表格看起来像是从excel复制到电子邮件中(即表格格式)?目前,它将html格式的表格视为电子邮件正文中的文本,这是非常无用的

import win32com.client
import pandas as pd

#Parameters
data= [{'A' : 'data', 'B': 2, 'C':1.78},
      {'A' : 'data', 'B': 22, 'C':1.56},]
table = pd.DataFrame(data)

subject = 'email subject'
body = '<html><body>' + table.to_html() + '</body></html>'
recipient = 'email@domain.com'
attachments = []

#Create and send email
olMailItem = 0x0
obj = win32com.client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(olMailItem)
newMail.Subject = subject
newMail.Body = body
newMail.To = recipient

for location in attachments:
    newMail.Attachments.Add(Source=location)

newMail.display()
newMail.Send()
导入win32com.client
作为pd进口熊猫
#参数
data=[{'A':'data','B':2,'C':1.78},
{'A':'data','B':22,'C':1.56},]
table=pd.DataFrame(数据)
主题='电子邮件主题'
body=''+table.to_html()+''
接受者email@domain.com'
附件=[]
#创建和发送电子邮件
olMailItem=0x0
obj=win32com.client.Dispatch(“Outlook.Application”)
newMail=obj.CreateItem(olMailItem)
newMail.Subject=Subject
newMail.Body=Body
newMail.To=收件人
对于附件中的位置:
newMail.Attachments.Add(源=位置)
newMail.display()
newMail.Send()
当我希望它成为实际表格时,发送一封类似以下内容的电子邮件:

<html><body><table border="1" class="dataframe"> 
  <thead> 
    <tr style="text-align: left;"> 
      <th>A</th> 
      <th>B</th> 
      <th>C</th> 
    </tr> 
  </thead> 
  <tbody> 
    <tr> 
      <td> data</td> 
      <td> 2</td> 
      <td> 1.78</td> 
    </tr>
    <tr> 
      <td> data</td> 
      <td> 22</td> 
      <td> 1.56</td> 
    </tr> 
  </tbody> 
</table></body></html> 

A.
B
C
资料
2.
1.78
资料
22
1.56

我知道怎么做了。需要在原始代码中更改一行代码。而不是使用:

newMail.Body = body
改为这样做:

newMail.HTMLBody = body

我只是想说这帮了我大忙,谢谢。我将其设置为提供前几天绩效的摘要,并附上当天的原始数据。非常酷——这件事过去在Excel中需要花费我很多时间才能完成,但现在它完全由pandas+任务调度器自动完成。非常感谢你,这对我很有帮助