Ani*_*l_M 7 windows outlook win32com python-2.7
我正在使用win32com.client,python 2.7.x并outlook 2013在windows平台上.
我需要将HTML文件的内容发布到outlook消息正文.
我按照这里的帖子,这里和这里关于如何保存excel HTML和粘贴数据outlook.
但是,当我通过win32com.client.Dispatch而不是看到消息来阅读文件时,我看到的是HTML代码.
以下是将已处理xlsx文件转换为html使用格式的代码win32.com.
#Section to convert excel workbook to html
myfile = os.getcwd()+ "\\" + outfile
newfile = os.getcwd()+ "\\" + "emailData.html"
xl = EnsureDispatch('Excel.Application')
#xl.Visible = True
wb3 = xl.Workbooks.Open(myfile)
wb3WorkSheet = wb3.Worksheets(1)
wb3WorkSheet.Activate()
wb3.SaveAs(newfile, constants.xlHtml)
wb3.Close(True)
xl.Workbooks.Close()
xl.Quit()
del xl
Run Code Online (Sandbox Code Playgroud)
上面的输出newfile基本上是保存为html的xlsx文件的导出.然后通过mail.body处理程序打开它,该处理程序应该读取并显示outlook中的实际内容.
这是代码.
from win32com.client.gencache import EnsureDispatch
from win32com.client import constants, Dispatch
#Create and open mail message
def Emailer(text, subject, recipient):
outlook = Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = recipient
mail.Subject = subject
mail.HtmlBody = text
#mail.HtmlBody = open(newfile).read()
mail.body = open(newfile).read()
attachment1 = os.getcwd()+"//"+outfile
mail.Attachments.Add(attachment1)
mail.Display(True)
Emailer(pageTemplate,
"test subject",
"abc@yahoo.com"
)
Run Code Online (Sandbox Code Playgroud)
所以,当我打开newfile(html文件)时,mail.body = open(newfile).read()它会html content在新的Outlook电子邮件正文中粘贴.
当我打开newfile(html文件)使用mail.HtmlBody = open(newfile).read()它在outlook电子邮件正文中给出以下错误
ERROR: This page uses frames, but your browser doesn't support them.
关于这种行为的任何想法?
我基本上想在outlook电子邮件中复制/粘贴html文件(这是一个导出xlsx).不确定上述方法是否正确或有其他替代方法.
有没有办法将HTML框架粘贴/渲染到Outlook电子邮件正文中?
任何指针都表示赞赏.
| 归档时间: |
|
| 查看次数: |
480 次 |
| 最近记录: |