繁体   English   中英

Python通过Win32com将超链接添加到Outlook任务

[英]Python adding hyperlink to Outlook task through win32com

我想在通过win32com创建的任务主体中创建一个超链接。

到目前为止,这是我的代码:

outlook = win32com.client.Dispatch("Outlook.Application")
outlook_task_item = 3
recipient = "my_email@site.com"
task = outlook.CreateItem(outlook_task_item)
task.Subject = "hello world"
task.Body = "please update the file here"
task.DueDate = dt.datetime.today()
task.ReminderTime = dt.datetime.today()
task.ReminderSet = True
task.Save()

我尝试设置属性task.HTMLBody但出现错误:

AttributeError: Property 'CreateItem.HTMLBody' can not be set.

我也尝试过

task.Body = "Here is the <a href='http://www.python.org'>link</a> I need"

但我没有获得适当的超链接。

但是,如果我在Outlook中创建任务前端,则可以添加超链接。

任务不支持HTML。 相反,您必须提供RTF。

您可以通过task.RTFBody (和task.RTFBody.obj来查看给定任务的RTF,但不能设置它)来获得方便的视图。 要在任务主体中使用RTF,只需使用task.Body属性即可; 将其设置为包含RTF的字节数组将自动在正文中使用该RTF。 具体来说,要得到想要的身体,可以让

task.Body = rb'{\rtf1{Here is the }{\field{\*\fldinst { HYPERLINK "https://www.python.org" }}{\fldrslt {link}}}{ I need}}'

您也可以尝试:

task.HTMLBody = "Here is the <a href='http://www.python.org'>link</a> I need"

这会将'task.Body'中的数据覆盖为'task.HTMLBody'中提供的HTML格式

因此最后一个(Body或HTMLBody)将作为邮件的正文。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM