python - 使用 Python Exchangelib 库的电子邮件正文中的表格格式
问题描述
我正在 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 Exchange 电子邮件看起来像这样:
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 正文创建电子邮件的内容
推荐阅读
- java - java.lang.IllegalStateException:hybris 1905 中没有当前上下文
- c# - C#循环遍历xml文件中的属性
- python - 如何判断父类的函数是由子类的类方法或实例方法调用的?
- angular - 更改检测未触发 Angular 9
- excel - 将代码从 Microsoft Excel 对象转移到模块
- json - PowerShell 美化一个文件夹中的多个 JSON 文件
- python - PYTHON 代码取一个范围,并打印所有跳过 10 倍数的数字,如果范围大于 100,它将只打印最多 100
- javascript - 给定 n 作为输入,使用 JavaScript 打印以下模式 -1+2-3+4-5+....(+/-)n = n
- ios - dyld:库未加载:@rpath/CommonLibrary.framework/CommonLibrary
- r - 闪亮:是否可以将 updateSliderInput() 与基于 radioButton() 的受限滑动范围结合起来?