I am developing an Outlook web addins that involves extracting all hyperlinks from the mail message. I am currently doing it by getting all a
tag elements.
var htmlParser = new DOMParser().parseFromString(asyncResult.value, "text/html");
var urls = htmlParser.getElementsByTagName("a");
However, I found out that Outlook for PC displays text as a hyperlink as long as it contains www.
, even though the text is not meant to be a hyperlink. For example, I tried sending myself an email with www.example.com
as the content and I ensured that it is not a hyperlink when I sent it out.
In Outlook on the web, the text is indeed not a hyperlink.
But then in Outlook for PC, the text was displayed as a hyperlink automatically. Since I did not send it out as a hyperlink, it does not have an a
tag and hence my addin could not extract this "hyperlink". Is there a way to also extract these "hyperlinks" in a mail message?
You could use the getEntitiesByType API to get any URL entities identified in the mail body. A sample API call is:
Office.context.mailbox.item.getEntitiesByType(Office.MailboxEnums.EntityType.Url)