我正在使用python探索使用exchangelib库编写正文内容包含表内容的电子邮件。
我尝试了将代码添加到正文内容中的代码。
import pandas as pd
import numpy as np
from exchangelib import Account, Credentials, Message, Mailbox
dfReport = pd.read_excel("test.xlsx")
FilteredData = dfReport[dfReport["ColumnID"].str.contains('MyCharacter')]
DataTable = pd.pivot_table(FilteredData ,index="Processor",values="TicketID",aggfunc=np.count_nonzero,margins=True)
EmailAdd = 'XXX@YYY.Z'
EmailPass = 'XXXXXX'
MyAccount = Account(EmailAdd,credentials=Credentials(EmailAdd,EmailPass),autodiscover=True)
MyMessage = Message(account=MyAccount, folder=MyAccount.sent,subject='Daily motivation', body=DataTable, to_recipients=[Mailbox(email_address='AAA@BBB.CC')])
MyMessage.send_and_save()
在邮件正文中应有以下演示:
Name Count
Item 1 53
Item 2 38
Item 3 123
Item 4 175
Item 5 212
但是在Outlook交换电子邮件中,电子邮件看起来像这样:
Name
Count
Item 1 53
Item 2 38
Item 3 123
Item 4 175
Item 4 212
答案 0 :(得分:1)
要正确控制电子邮件正文的格式,您需要以HTML格式发送正文。
最简单的方法可能是将数据帧转换为字符串,将其封装在<pre>
标签中,然后定义等宽字体。
您可以在https://github.com/ecederstrand/exchangelib#creating-updating-deleting-sending-and-moving
上阅读有关使用HTML正文创建电子邮件的信息。