Python добавляет гиперссылку на задачу Outlook через win32com - PullRequest
0 голосов
/ 06 июля 2018

Я бы хотел создать гиперссылку в теле задачи, созданной через 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, я могу добавить гиперссылки.

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Вы также можете попробовать:

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

это перезапишет данные в 'task.Body' в формат HTML, предоставленный в 'task.HTMLBody'

так, что бы ни (Body или HTMLBody) последним будет принято как тело письма.

0 голосов
/ 10 июля 2018

Задачи не поддерживают HTML.Вместо этого вы должны предоставить RTF.

Вы можете исследовать - но не устанавливать - RTF данной задачи через task.RTFBodytask.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}}'
...