我想在通过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中创建任务前端,则可以添加超链接。
答案 0 :(得分:1)
任务不支持HTML。相反,您必须提供RTF。
您可以通过task.RTFBody
研究(但不能设置)给定任务的RTF(和task.RTFBody.obj
可以方便地查看它)。要在任务正文中使用RTF,只需使用task.Body
属性即可;将其设置为包含RTF的字节数组将自动在正文中使用该RTF。具体来说,要得到想要的身体,可以让
task.Body = rb'{\rtf1{Here is the }{\field{\*\fldinst { HYPERLINK "https://www.python.org" }}{\fldrslt {link}}}{ I need}}'
答案 1 :(得分:0)
您也可以尝试:
task.HTMLBody = "Here is the <a href='http://www.python.org'>link</a> I need"
这会将'task.Body'中的数据覆盖为'task.HTMLBody'中提供的HTML格式
因此以最后一个(正文或HTMLBody)为准。