How to export urls from email to excel and check the status of the url ?

showrya.krovvidi

New Member
Outlook version
Outlook 2016 64 bit
Email Account
Outlook.com (as MS Exchange)
Hi Everyone,

I have been searching for a solution since the past two weeks for one of my critical projects. We have configured emails to be triggered for multiple instances and we receive approximately 1000 email alerts a day stating the configured URLs are down. Most of them are false positives and it has become a tedious job for me to check all the urls manually. I am a novice in writing macros, but I have tried multiple ways for my problem and no luck.
I am searching for a macro that will open the first url from all the selected emails in an excel and then checks for the http status of the same and return the status in the excel. Getting all the first urls from a set of emails is the toughest part where I have been stuck since the past 2 weeks. Can anyone please let me know if this can be ever achieved through a macro. If yes, how?
Thanks in advance.
 

Diane Poremsky

Senior Member
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
This is a macro i have for outlook - Open All Hyperlinks in an Outlook Email Message - it opens all links in a web browser.

If you just need to get content from the page or server - you can use an function instead - I use this to get values from a web page - but a similar method could get just the status.


Code:
Private Function HttpOpen(ByVal strArgURL As String, Optional ByVal strArgMethod As String)
       If Not Len(strArgMethod) > 0 Then strArgMethod = "GET" Else strArgMethod = UCase(strArgMethod)
    Dim oHttp As Object
    Dim strX As String
    Set oHttp = CreateObject("MSXML2.ServerXMLHttp")
        With oHttp
            .Open strArgMethod, strArgURL, False
            .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
            .send (strArgURL)
            strX = .responseText
            .abort
        End With
    HttpOpen = strX
    
End Function

I pass a url to this code in the macro to get the value in a specific element - i don't think i have this written up in an article (but probably should).

Code:
Dim doc As MSHTML.HTMLDocument
Dim table As MSHTML.HTMLTable

Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")
objHttp.Open "GET", strURL, False
objHttp.send ""

Title = ""
Title = objHttp.responseText

Set doc = New MSHTML.HTMLDocument
    doc.Body.innerHTML = HttpOpen(strURL, "GET")

Dim aEle As HTMLDivElement
For Each aEle In doc.getElementsByClassName("stats-num-item")
 

showrya.krovvidi

New Member
Outlook version
Outlook 2016 64 bit
Email Account
Outlook.com (as MS Exchange)
This is a macro i have for outlook - Open All Hyperlinks in an Outlook Email Message - it opens all links in a web browser.

If you just need to get content from the page or server - you can use an function instead - I use this to get values from a web page - but a similar method could get just the status.
Hi Diane,

Greetings. Thank you for the quick response and helping with the above link. I have tried that previously and set it as to run as a script in the rules, but if something goes wrong with my monitoring beacon, 100s of emails are generated at once and all pile up in outlook and this script for which I have set rule for is trying to open all the emails at once and my system is get hung by that. So, all I need now is to extract all the first url all selected emails to an excel or to a text file. I have googled different ways and tried multiple scenarios but no luck.

I have tried the solution provided in How to Quickly Extract All URLs from an Outlook Email to a Text File - Data Recovery Blog , but am getting a bad file descriptior 52 error in this block;

Create a new text file
strTextFile = "C:\Hyperlinks (" & objMail.Subject & ").txt"
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFileSystem.CreateTextFile(strTextFile, True)
objTextFile.WriteLine ("Extracted URLs:" & vbCrLf & vbCrLf)

also tried solution provided in How to Quickly Export All Hyperlinks in Multiple Outlook Emails to Excel - Data Recovery Blog , but this doesn't even run in system.
 

showrya.krovvidi

New Member
Outlook version
Outlook 2016 64 bit
Email Account
Outlook.com (as MS Exchange)
I pass a url to this code in the macro to get the value in a specific element - i don't think i have this written up in an article (but probably should).
Hi Daine, where do I need to put the piece of code? I tried running the script by editing the function and am getting an error as below;

"Wrong Number of arguments or invalid property assigned".


Could you please let me know how to extract the first url from all selected emails to excel?
 
Top