Link to home
Start Free TrialLog in
Avatar of peteryau
peteryauFlag for Hong Kong

asked on

how to write a simple script in outlook 2007 to send one of a saved message in the draft folder to a particular recipient ?

I want to send a particular saved message prepared in the draft folders to another outsider email recipient  when I receive a email from somebody.
I know using rules can provide conditional filtering but it seems the rules cannot allow me to send a saved draft message to outside.  Besides, I have a lot of draft messages and will be sent according to different recipient.

Can someone please help?

Avatar of David Lee
David Lee
Flag of United States of America image

Hi, peteryau.

Here's the code for doing this.  Follow these instructions to use it.

1.  Start Outlook
2.  Click Tools->Macro->Visual Basic Editor
3.  If not already expanded, expand Microsoft Office Outlook Objects and click on Module1
4.  Copy the code from the Code Snippet box and paste it into the right-hand pane of Outlook's VB Editor window
5.  Edit the code as needed.  I included comments wherever something needs to or can change
6.  Click the diskette icon on the toolbar to save the changes
7.  Close the VB Editor
8.  Click Tools->Macro->Security
9.  Set the Security Level to Medium
10.  Close Outlook
11.  Start Outlook
12.  Create a rule
13.  Set the rule's action to "run a script"
14.  Select this script as the script to run

You can duplicate this code as many times as necessary to handle different rules.  You just need to change the name of the subroutine so it's unique and edit the subject text on line #5 of the code.
Sub DraftReply1(Item As Outlook.MailItem)
    Dim olkReply As Outlook.MailItem, olkDraft As Outlook.MailItem
    On Error Resume Next
    'Change the subject text on the following line'
    Set olkDraft = Session.GetDefaultFolder(olFolderDrafts).Items.Find("[Subject]='Some Subject'")
    On Error GoTo 0
    If TypeName(olkDraft) = "MailItem" Then
        Set olkReply = olkDraft.Copy
        olkReply.Recipients.Add Item.SenderEmailAddress
        olkReply.Send
    End If
    Set olkDraft = Nothing
    Set olkReply = Nothing
End Sub

Open in new window

Avatar of peteryau

ASKER

It works !!  but there some issues on
1) outlook prompt a dialogue everytime to manually click to allow access to the data, is there any setting I can do to get rid of it.  
2 ) Besides, the above code automatically also reply to the sender.  How can I change the code to only send to the defined recipient in the draft message in the draft folder? I don't need to reply to the sender.

Thank you for your help.
ASKER CERTIFIED SOLUTION
Avatar of David Lee
David Lee
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Great !!!  10 out of 10 fast and accurate. I appreciate.  Thank you very much.
By the way, I am sort out other small macros in outlook which I think may need your help again...
You are so great!!! Thank you. BTW, I am sorting out other macros I need in outlook automation.   I probably need your help again.  I will post it later.
Thanks again.
Thanks and you're welcome.  If you ever want to draw my attention to a question, then you're welcome to send me an email with a link to the question.  My address is in my profile.