Macro to extract and modify links from emails

schwarznavy

Senior Member
Outlook version
Outlook 2010 32 bit
Email Account
Exchange Server
Good morning,

When coworkers create Skype for Business meetings in Outlook, the invitation includes a Skype Meeting link. I'm assuming that the recipient's Outlook client reads this link and therefore enables a "Join Meeting" button in numerous places (the ribbon, when right-clicking the meeting, the reminder window, etc).

Issue: When coworkers use a Virtual Meeting Room instead of a Skype meeting, the invitation includes a different kind of link (###-####@work.domain). Outlook clients don't read this at all. No "Join Meeting" buttons are activated. Clicking the link in the email opens up a new email to that address. To join via video, I need to dial #######@work.domain (remove the hyphen) in Skype and then join video.

Solution: I'm thinking a good solution would be to create a macro that can read any ###-####@work.domain links in emails. Then, it would convert that link to whatever is the appropriate URL to tell Skype to make a video call to the correct address. My guess is it is something like: sip:<#######@work.domain>.

Any other suggested paths?

Any tips or pointers for me to get started?
 

Sentinels

Member
Outlook version
Outlook 2016 64 bit
Email Account
Exchange Server
Good morning,

When coworkers create Skype for Business meetings in Outlook, the invitation includes a Skype Meeting link. I'm assuming that the recipient's Outlook client reads this link and therefore enables a "Join Meeting" button in numerous places (the ribbon, when right-clicking the meeting, the reminder window, etc).

Issue: When coworkers use a Virtual Meeting Room instead of a Skype meeting, the invitation includes a different kind of link (###-####@work.domain). Outlook clients don't read this at all. No "Join Meeting" buttons are activated. Clicking the link in the email opens up a new email to that address. To join via video, I need to dial #######@work.domain (remove the hyphen) in Skype and then join video.

Solution: I'm thinking a good solution would be to create a macro that can read any ###-####@work.domain links in emails. Then, it would convert that link to whatever is the appropriate URL to tell Skype to make a video call to the correct address. My guess is it is something like: sip:<#######@work.domain>.

Any other suggested paths?

Any tips or pointers for me to get started?
I do something very similar - but in appointments (not e-mail) - for zoom. For me, it is triggered with any appointment that contains a zoom link (with a reminder 15 minutes before and a pop-up request to join 2 minutes before the meeting). Feel free to play around the code to work for new e-mails / skype:

Public WithEvents oReminders As Outlook.Reminders
Public sDismissSubject As String

Private Sub Application_Reminder(ByVal objItem As Object)
Dim objWordHyperlinks As Word.Hyperlinks
Dim objWordHyperlink As Word.Hyperlink

Dim iTimeDiff As Integer

Set oReminders = Outlook.Reminders

If objItem.MessageClass <> "IPM.Appointment" Then Exit Sub

On Error Resume Next
If funcIsZoomAppt(objItem) Then
iTimeDiff = (objItem.Start - VBA.Now) * 24 * 60

If iTimeDiff <= 2 And iTimeDiff >= 0 Then
Set objWordHyperlinks = objItem.GetInspector.WordEditor.Hyperlinks

For Each objWordHyperlink In objWordHyperlinks
If VBA.InStr(1, objWordHyperlink.Address, "zoom.us/", vbTextCompare) Then
If VBA.MsgBox("Zoom appointment (" & objItem.Subject & ") in " & iTimeDiff & " minutes. Do you want to join?", vbYesNo + vbDefaultButton1, "Reminder") = vbYes Then
Call VBA.Shell("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe " & objWordHyperlink.Address)
sDismissSubject = objItem.Subject
objItem.ReminderSet = False
objItem.Save
End If

Exit For
End If
Next objWordHyperlink

Set objWordHyperlink = Nothing
Set objWordHyperlinks = Nothing

ElseIf iTimeDiff > 2 Then
sDismissSubject = objItem.Subject

Call VBA.MsgBox("Zoom appointment (" & objItem.Subject & ") in " & iTimeDiff & " minutes.", vbOKOnly, "Reminder")

objItem.ReminderSet = True
objItem.ReminderMinutesBeforeStart = 2
objItem.Save
End If
End If
End Sub

Function funcIsZoomAppt(objItem As Outlook.AppointmentItem) As Boolean
Dim objWordHyperlinks As Word.Hyperlinks
Dim objWordHyperlink As Word.Hyperlink

funcIsZoomAppt = False
If VBA.Left(objItem.Location, VBA.Len("https://[Redacted].zoom.us/j/")) = "https://[Redacted].zoom.us/j/" Then
funcIsZoomAppt = True
Else
Set objWordHyperlinks = objItem.GetInspector.WordEditor.Hyperlinks

For Each objWordHyperlink In objWordHyperlinks
If VBA.InStr(1, objWordHyperlink.Address, "zoom.us/", vbTextCompare) And objItem.Subject <> "" Then
funcIsZoomAppt = True
Exit For
End If
Next objWordHyperlink

Set objWordHyperlink = Nothing
Set objWordHyperlinks = Nothing
End If
End Function
 

schwarznavy

Senior Member
Outlook version
Outlook 2010 32 bit
Email Account
Exchange Server
Hello Sentinels,

Just getting around to trying this out. Did you possibly leave something out?

I'm getting en error with that says "User-defined type not defined." The Visual Basic editors then pops up. "Private Sub Application_Reminder(ByVal objItem As Object)" is highlighted yellow, and "objWordHyperlinks As Word.Hyperlinks" is selected.

I will try to tinker with it.
 

miaturner95

New Member
Outlook version
Outlook 2019 64-bit
Email Account
IMAP
this can be quite handy, to filter out unnecessary links, especially in large group chats. I have found this link for something similar
 
Similar threads
Thread starter Title Forum Replies Date
S Macro to extract email addresses of recipients in current drafted email and put into clipboard Outlook VBA and Custom Forms 2
C Macro to extract sender name & subject line of incoming emails to single txt file Outlook VBA and Custom Forms 3
J Outlook 2013 Extract Flag Completed dates to Excel Macro Outlook VBA and Custom Forms 16
N Help creating a VBA macro with conditional formatting to change the font color of all external emails to red Outlook VBA and Custom Forms 5
S Visual indicator of a certain property or to show a macro toggle Outlook VBA and Custom Forms 2
L Modifying VBA script to delay running macro Outlook VBA and Custom Forms 3
M Replyall macro with template and auto insert receptens Outlook VBA and Custom Forms 1
L Macro to add Date & Time etc to "drag to save" e-mails Outlook VBA and Custom Forms 2
S Macro for Loop through outlook unread emails Outlook VBA and Custom Forms 2
Globalforester ItemAdd Macro - multiple emails Outlook VBA and Custom Forms 3
witzker HowTo start a macro with an Button in OL contact form Outlook VBA and Custom Forms 12
witzker Macro to move @domain.xx of a Spammail to Blacklist in Outlook 2019 Outlook VBA and Custom Forms 7
S Macro for other actions - Outlook 2007 Outlook VBA and Custom Forms 23
L Macro/VBA to Reply All, with the original attachments Outlook VBA and Custom Forms 2
S Macro to move “Re:” & “FWD:” email recieved the shared inbox to a subfolder in outlook Outlook VBA and Custom Forms 0
S Outlook Macro to send auto acknowledge mail only to new mails received to a specific shared inbox Outlook VBA and Custom Forms 0
S Outlook Macro to move reply mail based on the key word in the subjectline Outlook VBA and Custom Forms 0
Eike Move mails via macro triggered by the click of a button? Outlook VBA and Custom Forms 0
S Macro or plug-in to see if specific person was included in this email Outlook VBA and Custom Forms 4
U Macro for reminders,tasks,calendar Outlook VBA and Custom Forms 4
V macro runs slower on startup than after Outlook VBA and Custom Forms 3
N Macro to move all recipients to CC while replying Outlook VBA and Custom Forms 0
A VBA macro for 15 second loop in send and received just for 1 specific mailbox Outlook VBA and Custom Forms 1
G VBA Macro Calendar Printing Assistant 4
R Help Revising VBA macro to delete email over different time span Outlook VBA and Custom Forms 0
M Outlook macro to automate search and forward process Outlook VBA and Custom Forms 6
R Macro Schedule every day in Outlook Using Outlook 0
L Moving emails with similar subject and find the timings between the emails using outlook VBA macro Outlook VBA and Custom Forms 1
Healy Consultants Macro to remove inside organization distribution list email address when reply to all recepients Outlook VBA and Custom Forms 0
geofferyh Cannot get Macro to SAVE more than one message attachment??? Outlook VBA and Custom Forms 5
N How can I increase/faster outlook VBA Macro Speed ? Using Outlook 2
4 Macro to set the category of Deleted Item? Outlook VBA and Custom Forms 2
D.Moore Folder view settings by VBA macro Outlook VBA and Custom Forms 57
A Outlook macro to create search folder with mail categories as criteria Outlook VBA and Custom Forms 3
Dave A Run macro on existing appointment when it changes Outlook VBA and Custom Forms 1
V Outlook Macro to show Flagged messages Outlook VBA and Custom Forms 2
O Run macro automatically at sending an email Using Outlook 11
R Retain Original Message When Forwarding With Macro Outlook VBA and Custom Forms 3
C Macro to add multiple recipients to message Outlook VBA and Custom Forms 3
B Reply and replyall macro is not working Outlook VBA and Custom Forms 1
O Macro - paste as plain text Outlook VBA and Custom Forms 2
J Help Please!!! Outlook 2016 - VBA Macro for replying with attachment in meeting invite Outlook VBA and Custom Forms 9
witzker Macro to set contact reminder to next day 9:00 Outlook VBA and Custom Forms 45
M Adding Macro to populate "to" "subject" "body" not deleting email string below. Outlook VBA and Custom Forms 5
E Copying data from e-mail attachement to EXCEL file via macro Outlook VBA and Custom Forms 38
M Macro to add date/time stamp to subject Outlook VBA and Custom Forms 4
R VBA macro - new message Outlook VBA and Custom Forms 3
S Example VBA Macro - To Conditionally Change the From Account and Add a BCC Address on Emails Outlook VBA and Custom Forms 11
S Macro using .SendUsingAccount only works the first time, after starting Outlook Outlook VBA and Custom Forms 4
S VBA Macro - Run-time error '424': object required - Help Please Outlook VBA and Custom Forms 3

Similar threads

Top