Table 使用 Python Exchangelib 库在电子邮件正文中格式化
Table Format in email body using Python Exchangelib library
我正在 python 探索使用 exchangelib 库编写电子邮件,正文内容包含 table 内容。
我试过在正文内容中添加 table 的代码。
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
要正确控制电子邮件正文的格式,您需要将正文发送为 HTML。
最简单的可能是将数据帧转换为字符串,将其封装在 <pre>
标签中并定义等宽字体。
您可以在 https://github.com/ecederstrand/exchangelib#creating-updating-deleting-sending-and-moving
阅读有关创建带有 HTML 正文的电子邮件的信息
我正在 python 探索使用 exchangelib 库编写电子邮件,正文内容包含 table 内容。
我试过在正文内容中添加 table 的代码。
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
要正确控制电子邮件正文的格式,您需要将正文发送为 HTML。
最简单的可能是将数据帧转换为字符串,将其封装在 <pre>
标签中并定义等宽字体。
您可以在 https://github.com/ecederstrand/exchangelib#creating-updating-deleting-sending-and-moving
阅读有关创建带有 HTML 正文的电子邮件的信息