Email Parsing VBA Script for Outlook - NEEDED

Status
Not open for further replies.

Jerrod

Member
Outlook version
Outlook 2010 64 bit
Email Account
POP3
I need an Email Parsing Script for incoming Emails from a specific vendor. I have started the script but am having trouble with CASE 2 and CASE 3. Help please..... See specifics below:

Email Properties:
From: XXXYYYZZZ
To: AAABBBCCC
Subject: Inquiry for Property #999

Body:
Scenario 1
Property: 8505 E. San Pablo Dr
JOHN DOE, LOS ANGELES, CA, (5556021919) called to inquire about property 999

Scenario 2
Property: 8505 E. San Pablo Dr
(5556021919) called to inquire about property 999


Script Requirements:
1. Return:
· Property = 8505 E. San Pablo Dr.
· Name = JOHN DOE
· Phone = 555-602-1919



Email Parsing - Script
Sub GetValueUsingRegEx()
' Set reference to VB Script library
' Microsoft VBScript Regular Expressions 5.5

Dim olMail As Outlook.MailItem
Dim Reg1 As RegExp
Dim M1 As MatchCollection
Dim M As Match

Set olMail = Application.ActiveExplorer().Selection(1)
' Debug.Print olMail.Body

Set Reg1 = New RegExp

' \s* = invisible spaces
' \d* = match digits
' \w* = match alphanumeric


For i= 1 to 3

With Reg1
Select Case i
Case 1
.Pattern = "Property\s*[:]+\s*(\w*)\s*"
.Global = True

Case 2
.Pattern = "Property\s*[:]+\s*(\w*)\s*"
.Global = True

Case 3
.Pattern = "Property\s*[:]+\s*(\w*)\s*"
.Global = True
End Select

End With
If Reg1.test(olMail.Body) Then

Set M1 = Reg1.Execute(olMail.Body)
For Each M In M1
' M.SubMatches(1) is the (\w*) in the pattern
' use M.SubMatches(2) for the second one if you have two (\w*)
Debug.Print M.SubMatches(1)

Next
End If


End Sub
 
Will the name and phone number always be formatted with upper case or ()? You might be able to look for those, since there isn't a field name to use.

If the formats never change, this select case will work:
With Reg1
Select Case i
Case 1
.Pattern = "(Property\s*[:]+\s*(.*)\s*)"
.Global = False

Case 2
.Pattern = "(([A-Z\s]*),)"
.Global = False

Case 3
.Pattern = "(\(([0-9]*)\))"
.Global = True
End Select



Code:
Sub GetValueUsingRegEx()
' Set reference to VB Script library
' Microsoft VBScript Regular Expressions 5.5

Dim olMail As Outlook.MailItem
    Dim Reg1 As RegExp
    Dim M1 As MatchCollection
    Dim M As Match
    Dim strMatch As String
    Dim strAddress, strPhone, strName

Set olMail = Application.ActiveExplorer().Selection(1)

Set Reg1 = New RegExp

For i = 1 To 3

With Reg1
Select Case i
Case 1
.Pattern = "(Property\s*[:]+\s*(.*)\s*\n)"
.Global = False

Case 2
.Pattern = "(\n([A-Z\s]*),)"
.Global = False

Case 3
.Pattern = "(\(([0-9]*)\))"
.Global = True
End Select


End With
If Reg1.test(olMail.Body) Then

Set M1 = Reg1.Execute(olMail.Body)
For Each M In M1
strMatch = M.SubMatches(1)
strMatch = Replace(strMatch, Chr(13), "")
Select Case i
Case 1
strAddress = strMatch
Case 2
strName = strMatch
Case 3
strPhone = strMatch
End Select


Next


End If

Next

Debug.Print "Address: " & strAddress & vbCrLf & "Name: " & strName & vbCrLf & "Phone: " & Format(strPhone, "000-000-0000")

End Sub
 
Diane,

Thanks for you expeditious reply. To answer your questions: (1) YES - the Names will ALWAYS be in capitals. (2) And, YES - the Telephone Numbers will ALWAYS parenthesis around them with not spaces between the digits.

Will that effect the code in which you have written at all?

Thanks again for your help! :)
 
Hey Diane,

If the script you wrote is not showing up in the MS Outlook? Is there something I need to do in order to get it there?

Thanks.
 
Thanks for you expeditious reply. To answer your questions: (1) YES - the Names will ALWAYS be in capitals. (2) And, YES - the Telephone Numbers will ALWAYS parenthesis around them with not spaces between the digits.

Will that effect the code in which you have written at all?
It should work fine under those conditions - it does here, but there is always a chance that my recreation of the messages is not identical to the actual messages.[DOUBLEPOST=1407889360,1407888968][/DOUBLEPOST]
Hey Diane,

If the script you wrote is not showing up in the MS Outlook? Is there something I need to do in order to get it there?

Thanks.

Where are you looking for it? It's not a run a script rule - it runs on a selected message. If you need it to be a run a script, first test it and verify it works, then it need a little tweaking -

name is

Sub GetValueUsingRegEx(olmail as outlook.mailitem)

delete the set olmail line

and of course, you need to do something in place of the debug.print, which prints to the Immediate window (Ctrl+G to view.)
 
Thanks Diane,

I appreciate the help. Bare with me as I am not a high level programmer. (1) Where is the data returned (file,etc..)? I have not been able to locate it. (2) How can I forward that data along as another email with the data extracted?
 
paste the code into the VBA editor, make sure you Set reference to VB Script library -Microsoft VBScript Regular Expressions 5.5 - then show the immediate window (View menu or Ctrl+G). Now select a message and then run the code. The immediate window will show you the data it collected.

pop this in right after the debug print line
Code:
Dim objMsg As MailItem
Set objMsg = Application.CreateItem(olMailItem)
With objMsg
  .To = "Alias@domain.com"
  .Subject = "This is the subject"
  .BodyFormat = olFormatPlain ' send plain text message
  .body = "Address: " & strAddress & vbCrLf & "Name: " & strName & vbCrLf & "Phone: " & Format
  
  .Display ' use display for testing,  .send to send automatically
End With
Set objMsg = Nothing
 
Thanks Diane... I am going to dive into it. I really appreciate the help!
 
Status
Not open for further replies.
Similar threads
Thread starter Title Forum Replies Date
J Outlook is not parsing html email, unreadable and attachment not decoded Using Outlook 1
P Email address auto-completes work fine on laptop, but no longer on desktop Using Outlook 2
S Create Outlook Task from Template and append Body with Email Body Outlook VBA and Custom Forms 4
H Copying email address(es) in body of email and pasting in To field Outlook VBA and Custom Forms 1
A Search folder and move the email Outlook VBA and Custom Forms 0
P VBA to add email address to Outlook 365 rule Outlook VBA and Custom Forms 0
farrissf Outlook 2016 Optimizing Email Searches in Outlook 2016: Seeking Insights on Quick Search vs Advanced Search Features Using Outlook 0
D Delete selected text in outgoing email body Outlook VBA and Custom Forms 0
F Graphics in email / Mac recipient garbled Using Outlook 0
D Outlook VBA forward the selected email to the original sender’s email ID (including the email used in TO, CC Field) from the email chain Outlook VBA and Custom Forms 2
Witzker Outlook 2019 Macro to seach in all contact Folders for marked Email Adress Outlook VBA and Custom Forms 1
E Outlook 365 Save Selected Email Message as .msg File - oMail.Delete not working when SEARCH Outlook VBA and Custom Forms 0
S Email Macros to go to a SHARED Outlook mailbox Draft folder...NOT my personal Outlook Draft folder Using Outlook 2
R Outlook 365 VBA AUTO SEND WITH DELAY FOR EACH EMAIL Outlook VBA and Custom Forms 0
G Print email attachments when hit subfolder Outlook VBA and Custom Forms 1
C Spam Email? Using Outlook 2
G Automatically delete email when a condition is met Outlook VBA and Custom Forms 1
E Save Selected Email Message as .msg File - digitally sign email doesn't works Outlook VBA and Custom Forms 1
S Email was migrated from GoDaddy to Microsoft exchange. We lost IMAP ability Exchange Server Administration 1
R Outlook 365 How to integrate a third-party app with Outlook to track email and sms? Using Outlook 2
S Paperclip icon shows without attachment in email under Sent folder Using Outlook 0
B Outlook 2019 Automatically move email after assigning category Using Outlook 4
Rupert Dragwater How to permanently remove an email address Using Outlook 9
K vba code to auto download email into a specific folder in local hard disk as and when any new email arrives in Inbox/subfolder Outlook VBA and Custom Forms 0
F Auto changing email subject line in bulk Using Outlook 2
F Want to add second email to Outlook for business use Using Outlook 4
kburrows Outlook Email Body Text Disappears/Overlaps, Folders Switch Around when You Hover, Excel Opens Randomly and Runs in the Background - Profile Corrupt? Using Outlook 0
J Outlook 365 Outlook Macro to Sort emails by column "Received" to view the latest email received Outlook VBA and Custom Forms 0
A Outlook 2019 Help with forwarding email without mentioning the previous email sender. Outlook VBA and Custom Forms 0
J Macro to send email as alias Outlook VBA and Custom Forms 0
M Shift Delete doesn't delete email from server Using Outlook 3
K Incorporate selection from combobox into body of email Outlook VBA and Custom Forms 0
L Why are some email automatically going to "archive" Using Outlook 2
M Outlook Macro to save as Email with a file name format : Date_Timestamp_Sender initial_Email subject Outlook VBA and Custom Forms 0
B Outlook 2019 Custom Email form - Edit default email form Outlook VBA and Custom Forms 6
F Add a category before "Send an Email When You Add an Appointment to Your Calendar" Outlook VBA and Custom Forms 0
T Problem when requesting to view an email in a browser Using Outlook 0
J Outlook 365 Forward Email Subject to my inbox when new email arrive in shared inbox Using Outlook 0
HarvMan Archive Email Manually Using Outlook 1
L Fetch, edit and forward an email with VBA outlook Outlook VBA and Custom Forms 2
S New Email "From" box stopped working Using Outlook 0
Rupert Dragwater Duplicate email in Folder Using Outlook 7
M "Attachment Detacher for Outlook" add in, does it update the server copy of the email? Using Outlook 1
W Outlook 365 I am getting the "Either there is no default mail client" error when I try to send an email on excel Office 365 Using Outlook 1
MattC Changing the font of an email with VBA Outlook VBA and Custom Forms 1
L Specific Incoming Email Address Immediately Deleted Using Outlook 2
Witzker Outlook 2019 Macro to send an Email Template from User Defined Contact Form Outlook VBA and Custom Forms 0
Witzker Outlook 2019 Edit contact from email does not open the user defined contactform Using Outlook 3
V Macro to mark email with a Category Outlook VBA and Custom Forms 4
R Roadrunner Email Settings | Contact Roadrunner Customer Support Outlook VBA and Custom Forms 0

Similar threads

Back
Top