Outlook rule to run VBA script to pass the body of

2019-04-28 03:29发布

问题:

I've set up an Outlook rule that filters emails. I want to run an external program (python script) to parse each such email.

I know of the SHELL function, but I need a way to pass the body of the email to my external program.

回答1:

Google is your friend for this one, I got this snippet by searching "outlook vba script".

Basically for the body of the email you want to pass Item.Body to your python script.

http://support.microsoft.com/kb/306108

Sub CustomMailMessageRule(Item As Outlook.MailItem)
    MsgBox "Mail message arrived: " & Item.Subject
End Sub`

Sub CustomMeetingRequestRule(Item As Outlook.MeetingItem)
    MsgBox "Meeting request arrived: " & Item.Subject
End Sub


回答2:

You'd need a VBA script to parse python in outlook.

Press alt+F11. You will get a VBA window.

Sub python(Item As Outlook.MailItem)
Shell ("python C:\path\tp\your\filename.py")
End Sub

I hope you have set windows variable path for python.

Shell command passes the command to windows shell prompt. You can test this by running your python script in command prompt. If it is working there, then it should work here as well.