Python 将文本前置到现有邮件正文

Python 将文本前置到现有邮件正文,python,outlook-2010,win32com,Python,Outlook 2010,Win32com,我想使用下面的python代码来自动化一些报告 from win32com import client obj = client.Dispatch("Outlook.Application") newMail = obj.CreateItem(0x0) newMail.Subject = "This is the subject" ... newMail.Body = "This is the text I want to send in the mail body" 但这样做会删除签名。下面

我想使用下面的python代码来自动化一些报告

from win32com import client
obj = client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(0x0)
newMail.Subject = "This is the subject"
...
newMail.Body = "This is the text I want to send in the mail body"
但这样做会删除签名。下面的代码

...
newMail.Body = "This is the text I want to send in the mail body" + newMail.Body
保留签名,但破坏格式化。出于合规性原因,不可接受

有没有办法在邮件正文前添加文本以避免签名格式的终止?

tmp=newMail.body.split(“”)
tmp = newMail.Body.split('<body>')
# split by a known HTML tag with only one occurrence then rejoin
newMail.Body = '<body>'.join([tmp[0],yourString + tmp[1]])
#被已知HTML标记拆分,只出现一次,然后重新加入 newMail.Body=''.join([tmp[0],yourString+tmp[1]])
要添加的文本是否有格式?签名有什么格式?这封邮件是用html写的吗?@jmunch:没什么特别的,不同的字体,不同的大小。。。这是一个HTML。我曾考虑过使用HTMLBody,但希望有一种方法可以绕过解析HTML。它不是很小。你知道他们怎么说正则表达式。试着用RE解决一个问题。事后有两个问题;-)这可能是相关的:我偶尔尝试对这个答案进行一次编辑,但到目前为止没有任何改变(回头看编辑的代码不是很好)。至少在Python2.7中,上面的代码是错误的。join()需要一个iterable,因此请将…join(tmp[0],yourString+tmp[1])替换为…join((tmp[0],yourString+tmp[1])。这样做了,我会接受这一点answer@Lord_Gestalter你说得对,更新了答案。谢谢你接电话。