Last reviewed on March 14, 2014   —  171 Comments

How to use a Run a Script rule to have Microsoft Outlook automatically send a new email message using a template, to a new email addresses when a message meeting specific conditions arrives. I also have a version of the script that sends a new message with the body of the message that triggered the rule to another person. (To avoid including the Reply header in the body).

To use, open the VBA Editor and paste the code into ThisOutlookSession. Create a Run a Script rule, selecting this rule.

When you create the template, do not include a signature. Outlook will add the signature when the message is sent. To test the rule without sending messages, change objMsg = Send to ojbMsg = Display. This will open the message form instead of sending it.

New message using a template


Sub SendNew(Item As Outlook.MailItem)
 
Dim objMsg As MailItem
Set objMsg = Application.CreateItemFromTemplate("C:\path\to\test-rule.oft")

' If the address you want to send to is not saved in the template, 
' set the addresses here
'objMsg.Recipients.Add "alias@domain.com"

objMsg.Send

End Sub

To reply to the sender using a template

This script could be used for an Out of Office style reply. Using this method will send a reply with every message that meets the condition of the rule.


Sub SendNew(Item As Outlook.MailItem)
 
 
Dim objMsg As MailItem
Set objMsg = Application.CreateItemFromTemplate("C:\path\to\test-rule.oft")

objMsg.Recipients.Add Item.SenderEmailAddress

' Copy the original message subject 
objMsg.Subject = "Attn: " & Item.Subject


objMsg.Send

End Sub


To Forward the message body to another address

This version of the script sends a new message containing the body of the received message. (If you want to forward the complete message, use the Forward rule.)

Hyperlinks links will be "opened". To avoid this, and if you don't mind converting the messages to HTML, you can use objMsg.HTMLBody = Item.HTMLBody instead (it works with plain text and RTF messages), or create an If Then statement to check for incoming body types and use the correct format. As always, test it with messages to yourself or using objMsg.Display before using it to send messages to others.


Sub SendNew(Item As Outlook.MailItem)
 
Dim objMsg As MailItem
Set objMsg = Application.CreateItem(olMailItem)

objMsg.Body = Item.Body
objMsg.Subject = "FW: " & Item.Subject
objMsg.Recipients.Add "alias@domain.com"

objMsg.Send

End Sub


Comments

  1. Manuel Ratzinger says

    Hello,

    thx for that usefull post. I have a little different problem to solve. Do you know how it is possible to do the same thing as above but use a "alias" mail address to send the reply mail as a user could choose manualy in the "From..." Menue in a new Outlook E-Mail User Interface.

    I know the possibility with the SendUsingAccount method, but the problem is there is no additional account but the user has only the right to send as another user.

  2. Eric says

    I'm trying to use the To Forward the message body to another address script and I get a compile error on the first line. User-defined type not defined. I have excel 2010. Please help. Thanks

  3. Eric says

    Yes, but I've added a forwarding message and an email address. Sorry, first time trying to use the script option.

    objMsg.Subject = "FW: Forwarded to supportcase " & Item.Subject
    objMsg.Recipients.Add "Eric@companyname.com"

  4. Barney says

    Hi There
    I have an Outlook 2010 rule that runs whenever any emails from a specific user, with specific subject line and body text is detected. I know this rule works as I set up this rule with a simple forward rule and it work.
    However I want to execute your script 'New message using a template' as I want to trigger a whole new email and send it to specific users.
    I copied your code, followed your instructions but nothing happens.
    the outlook template file resides in c:\OFT\Rule1.oft
    This is what my script looks like
    ============================================
    Sub SendNew(Item As Outlook.MailItem)

    Dim objMsg As MailItem
    Set objMsg = Application.CreateItemFromTemplate("C:\OFT\Rule1.oft")

    ' If the address you want to send to is not saved in the template,
    ' set the addresses here
    bjMsg.Recipients.Add "bk@acp.com.au"

    objMsg.Send

    End Sub
    ============================================
    How can I toubleshoot this further? Any help would be greatly appreciated.

    • Diane Poremsky says

      Change .send to .display so you can see if the template opens.

      Oh, and if this is not a typo, you are missing the o.
      bjMsg.Recipients.Add "bk@acp.com.au

  5. Barney says

    Hi Diane
    I have checked and the syntax was correct, also changed the 'send' to 'display' when I run the rule the template does not open.
    =====================
    Sub SendNew(Item As Outlook.MailItem)

    Dim objMsg As MailItem
    Set objMsg = Application.CreateItemFromTemplate("C:\OFT\Rule1.oft")

    ' If the address you want to send to is not saved in the template,
    ' set the addresses here
    objMsg.Recipients.Add "bk@acp.com.au"

    objMsg.Display

    End Sub

    • Diane Poremsky says

      This is working here - I added MsgBox "SendNow rule" so I'd know if it kicked in.
      Sub SendNew(Item As Outlook.mailItem)
      MsgBox "SendNow rule"
      Dim objMsg As mailItem
      Set objMsg = Application.CreateItemFromTemplate("C:\OFT\Rule1.oft")
      ' If the address you want to send to is not saved in the template,
      ' set the addresses here
      objMsg.Recipients.Add "alias@domain.com"
      objMsg.Display
      End Sub

      It worked with that removed too - once i fixed my rule. I initially used conditions than my test messages did not meet. :(

  6. Mark says

    Diane - looking for a variation on this - wondering if you can help me. At our work site, I can't sync my google calendar with my work calendar because it's blocked. So I have a rule to forward meeting requests to my google calendar. The problem is that we also use "all day events" as a way to show someone is out of the office. I don't want these appointments forwarded to my google calendar, and I can't find a way to exclude them from the rule.

    Any advice?

    Thanks

    • Diane Poremsky says

      You'd add an if statement -

      If Appt.AllDayEvent = False then
      'do the forward
      else
      end if

      Do you have code you are using now or are you trying to convert this macro to something that meets your need?

  7. Mark says

    No, I currently just have a standard rule created through the Outlook rules wizard. Just trying to find a way to forward only meetings that are not all day events. The rules wizard doesn't account for this, and it looks as though I need to use a script or macro.

    • Diane Poremsky says

      You'll need to use a run a script rule. I'd probably build off of the rule here: autoaccept meeting - you can add the bit that checks for the all day state to the if statement, then add code to forward and remove the autoaccept bits.

  8. Misa says

    Hello,Can anyone help me with this issue : How to make "personalized auto-responder", if I can call it this way....
    Any decent WEB site today have (if we can call it) customized auto reply message when customer sign up with them.
    Example : If I register with some WEB site I receive message similar to this:
    Dear Misa,Thank you for registering with our website.
    Your details are as follows:-
    Username: Misa
    Password: Provided when you registered.
    So in just few seconds I'm receiving automated message with my name and user name,also if I loose password I can recover it.
    Can anyone tell me how I can get something like this, do I need additional software (or service)?Many thanks

    • Diane Poremsky says

      Do you want this on your web site? If so, you would use a script in the web page, not in outlook. If you use exchange server, you could have it generate a reply (pop and imap servers might be able to do it too) but having the form generate and send it would be easier.

  9. Barney says

    Diane
    The outlook template file does not display, nor do I get the message box pop up. Wondering if these things may be blocked by group policy, do you know?

    • Diane Poremsky says

      Do you have macro security set to low? As long as you can change the macro security to either low are warn for all macros, they can't block it.

  10. Barney says

    the macro setting in my outlook is set to 'Notifications for digitally signed macros, all other macros disabled' and this is greyed out, therefore I cannot change the setting. Must be set by GP. Are you familiar with how I can disable this via local security policy?

    • Diane Poremsky says

      If you have the ability to edit the registry (I'm guessing they have that locked down too), you can override it after each logon by deleting the key. But it's really best to talk to your admin.

  11. Misa says

    Yes Diane, I would need this for my WEB site. When I contacted support they told me that I need script for this, and now I'm looking for someone who can help me with it...

    • Diane Poremsky says

      It's really out of my league. Sorry. If you site uses php or asp, you can use that otherwise, you need javascript.
      google search. If you can't find anything (the results on page 2 looked promising, page 1 was mostly commercial services). Back before I moved to use a CMS, stackexchange and dynamicdrive seemed to have the most useful scripts but that was 3+ years ago.

      If all else fails you could do it in outlook, but the reply won't be fast since outlook needs to download the mail to reply. If you web mail can autoreply, you could set it up in the mailbox and replies will be fast.

    • Diane Poremsky says

      To add a note to the body, you'd use something like this:
      objMsg.Body = "Please see message below" & vbcrlf & vbcrlf & Item.Body

  12. Alap says

    Hi there,

    We are in a situation where we have a mailbox, which receives e-mails from abc@netbanx.com. The body of the e-mail contains our customer's e-mail address specified as E-mail Address: joe.bloggs@xyz.com

    We would like these e-mails to be forwarded to the customers by picking up the E-mail Address field in the body.

    Is there a script for this?

  13. Richard says

    Hi Diane
    I have used your script successfully thanks. However I would like to add multiple email recipients, and i have tried simply delimiting and repeating the objMsg.Recipients.Add line but to no avail.

    Any ideas?

    Thanks

    Richard

    • Diane Poremsky says

      One string with semi-colon delimiters should work -
      objMsg.Recipients.Add "alias@domain.com;another@domain.com"

      if it doesn't work for you, what does the error message say?

  14. Richard says

    Hi Diane, and thanks for the reply.

    I have tried the semi colon between email AD's but that seemed to only send to the first email in the list. Having said that, now it has stopped working all together, but there are no error messages popping up. Please see a copy of script below. Sorry I am not great at scripts, although am technical.

    Sub SendNew(Item As Outlook.MailItem)
    Item.Subject = ",,[Our ref: 2M7W2NSI5NruqKI]"

    Dim objMsg As MailItem
    Set objMsg = Application.CreateItemFromTemplate("C:\old\webserver.oft")
    objMsg.Recipients.Add "01888@123.biz;01885@123.biz;01883@123.biz;01881@123.biz"

    objMsg.Send

    End Sub

    The module code is below also

    Sub webserver()

    End Sub

    • Diane Poremsky says

      What is your macro security set to? That is the usual cause of macros not working at all.
      Does it work if you replace the template line with a new message?
      Set objMsg = Application.CreateItem(olMailItem)

      (use objMsg.display so you can see the messages without sending them).

  15. Craig Johnstone says

    if you just want to forward the subject only then use the following script

    Sub SendNew(Item As Outlook.MailItem)
    Dim objMsg As MailItemSet
    objMsg = Application.CreateItem(olMailItem)
    objMsg.Body = ""
    objMsg.Subject = "FW: " & Item.Subjectobj
    Msg.Recipients.Add "alias@domain.com"
    objMsg.Send
    End Sub

  16. Heri says

    Diane - looking for a variation on this - wondering if you can help me. I have tried "To Forward the message body to another address" script and its working perfectly but having issue with attachment, script not able to forward attached file/files in the email, can you please advice how to forward attachment with email body ??

    Many thanks

  17. Karen says

    Hi Diane, thank you for all of your posts and help so far :)
    I am using the "Send BCC" VBA code (life saver) however every now & then Outlook 2010 (on Win 8, 64) stops processing the macro after a reboot, and I don't always remember to check that the BCC is still active.

    Is there a way (I have googled but it assumes I'm referring to the auto send/receive at startup), to create an email at startup so it triggers the BCC and I can confirm it is working. .

    Eg: Outlook 2010 starts / Auto send mail to (test@testing.com)
    the Auto BCC triggers and I get an alert on my device "email received at bccadd@testing.com"

    Many thanks in advance,

    Karen

  18. Karen says

    I put the following code in as a Application_Startup item
    So far it seems to have worked. :) Thank you for the advice on the reminders. Reminders always trigger on startup, so that's a handy redundancy feature. :)

    =====
    Private Sub Application_Startup()
    'Creates a new e-mail item and modifies its properties'

    Dim olApp As Outlook.Application
    Dim objMail As Outlook.MailItem
    Set olApp = Outlook.Application
    'Create e-mail item'
    Set objMail = olApp.CreateItem(olMailItem)

    With objMail
    .Subject = Format(Now, "YYYYMMDD - HH:mm:ss") & " | " & "Login Test"
    .Body = Format(Now, "YYYYMMDD - HH:mm:ss") & " | " & "Testing the BCC"
    .To = "me@forme"
    .Recipients.ResolveAll
    .Send
    End With
    End Sub
    =====

  19. Pete says

    Hi, I'm looking for a bit of help with a script. When I'm bcc'd on an email I want to send a new email to the original email recipient. The email needs to include an attachment and ideally the attachments vary by email domain name. I can't find the commands that I need, please could someone point me in the right direction. Thanks

  20. Tex says

    Hi,

    I tried the code it works for me.But then, my problem is with Rules that i have set to run the script. Say, my Rule looks for the keyword 'xyz' in the subject line of received mail and triggers the script to forward the mail to a bigger group that includes myself. I again get the mail with 'xyz' in the subject line. This kind of, puts it in a loop!! Please suggest how to avoid this.

    • Diane Poremsky says

      Try adding an exception to the rule "except if sent to "my dl group" or use an if statement in the script, something like this -
      If instr(1, item.to, "DL name") then
      Exit sub
      End if

  21. Tera says

    Thank you for sharing this script!
    I have gone through the steps and was able to complete a successful test. However, as soon as I change the filter on the rule itself the script no longer sends or displays.

    I've deleted the rule and set up a new rule, but the problem continues.

    Please advise.

    • Diane Poremsky says

      So only the words changed? Is the word in the message? <== this would be the usual reason it fails.

  22. Tera says

    Yes Ma'am. The word is in the body and the subject. I've changed it from awaiting approval to approval.
    What make this even more interesting is, if I delete the rule and set it up again it will not display either.

    • Diane Poremsky says

      And the macro security is set to low or the macro is self-signed and you allow signed macros?

  23. Jenny C says

    HI Diane, how do I add a short message before it gets forwarded?

    I have used this and it works
    Sub ChangeSubjectForward(Item As Outlook.MailItem)
    Item.Subject = "Test"
    Item.Save

    Set myForward = Item.Forward
    myForward.Recipients.Add "alias@domain.com"

    myForward.Send

    End Sub

    But I'd like to add a message which would be a reference for the email being sent

    Thank you

    • Diane Poremsky says

      the quick and dirty way is to use item.body = "my message" & vbcrlf & item.body - if the message is HTML, you'll see why it's quick and dirty. :) it's great for plain text messages though.

    • Diane Poremsky says

      How much do you want to trim? use something like objMsg.body = Left(objMsg.body, 160) where 160 is the number of characters.

    • Diane Poremsky says

      You can't count words or lines (at least not without a function) but you can get characters - use right instead of left to get the end and Len to count the length. I'm on my tablet and can't see the original code, so you need to use the correct object name, but try a formula like this: body = right(body, Len(body)- 1800) (assuming AVG word length of 5+a space per word.)

    • Diane Poremsky says

      Here is a function that will count words - http://www.jpsoftwaretech.com/get-word-count-in-vba/ - it should work fine in outlook. You'd use it to get the word count then keep just the right most less 300. If there is a specific word or phrase in the body that is unique and never changes, at the point where you want to cut the text, you can use that in the calculation instead.

  24. Russell Brown says

    So here is a tricky one for you. I want to auto reply with a script but I want it to automatically reply when a vote is sent out. The vote contains times when you would like to attend the meeting. I would like when the vote email is sent to me, to be able to auto reply that I would like to attend at 11:00. Is this possible?

    • Diane Poremsky says

      It probably is, but I haven't tested it. You need to be able to filter for it then pass it to the Script that finishes the processing. Is it always a voting message?

  25. Doug says

    I think your script gets me almost to where I need to be. I'm trying to autoforward a message only when it's received from a particular email address. Can you suggest a modification that would make this work? Thanks!

    • Diane Poremsky says

      Setting the condition(s) in the rule is the easiest, but it doesn't always work with addresses - if outlook misses the underlying email address, you can use an if statement -
      if item.senderemailaddress = "alias@domain.com" then
      'do the stuff
      else
      end if

  26. Russell Brown says

    OK, Let me know what other specific information you might need to write the script. I would REALLY appreciate it!

  27. Nasim rawat says

    HI Diane,
    I want to auto forward email without adding previous sender or receiver,
    this is news email that send by sender on multiple user ids when i forward it it add all email ids in message body, some emails have attachments. I am beginner in VBA.

    • Diane Poremsky says

      You'll want to use the last one, Forward the message body to another address. This copies the message body to a new message. Do you also need to include the attachments?

  28. Anonymous says

    I was using a variation of your last example successfully several weeks ago, but for some reason when I tried to enable it again today I am not getting any notifications sent out. I just want an email sent to my personal email address with the name/email of the sender in the subject/body when new email arrives (I do not want the body/subject of the original email address sent to my personal email address due to security concerns). Here is the script. The top is my attempt at modifying yours. The bottom with all the ' marks was the one that worked great previously. Where I say _______@______.com is my personal email which I don't want to include on here. Thank you for your help!

    Sub SendNew(Item As Outlook.MailItem)

    Dim objMsg As MailItem
    Set objMsg = Application.CreateItem(olMailItem)

    objMsg.Body = Item.Sender
    objMsg.Subject = Item.SenderEmailAddress
    objMsg.Recipients.Add "_______@______.com"

    objMsg.Send

    End Sub
    'Sub SendRuleMail(objItem As Outlook.MailItem)
    ' Dim objMail
    ' Dim strMsg
    '
    ' 'Create a message object
    ' Set objOutlk = CreateObject("Outlook.Application")
    ' Set objMail = objOutlk.CreateItem(0)
    '
    ' 'Create a new message
    ' objMail.To = "___________@____.com"
    ' objMail.CC = "" 'Enter an address here To include a carbon copy; bcc is For blind carbon copy's
    '
    ' 'Set up Subject Line
    ' objMail.Subject = objItem.Sender
    '
    ' 'Add the body
    ' strMsg = objItem.Sender 'I used the subject of the new mail for the body
    ' objMail.Body = strMsg
    ' objMail.Send
    '
    ' 'Clean up
    ' Set objMail = Nothing
    ' Set strMsg = Nothing
    ' Set objOutlk = Nothing
    'End Sub

  29. Anonymous says

    I figured out the problem in my previous question yesterday - the macro settings were too restrictive so it was blocking my script. Now I am wondering if there is a way to adjust the script to automatically delete the message from my sent mail?

  30. Anonymous says

    Thanks. I figured it out. I am copying my code below in case it helps anyone else.

    Sub SendNew(Item As Outlook.MailItem)

    Dim objMsg As MailItem
    Set objMsg = Application.CreateItem(olMailItem)

    objMsg.Body = Item.SenderEmailAddress
    objMsg.Subject = Item.Sender
    objMsg.Recipients.Add "________@_____.com"

    objMsg.DeleteAfterSubmit = True

    objMsg.Send

    End Sub

  31. Nic Xiaoyu Qi says

    Hi,

    I am trying to make a macro to forward a email but include the selected email as an attachment.
    I've got everything to work apart from attaching the selected email as an attachment.

  32. Kathy Oliver says

    If I use the script for the auto reply, will the auto reply work every time a new email is received by the same sender? We are looking for the auto reply to send every time an email is sent by the same sender while the rule is in place.

    • Diane Poremsky says

      Yes, if you use a script for the reply, it will apply to every message from an address.

  33. Michael Martin says

    Diane, I would like to create a rule / script that can read two emails by the subject line and forward a mail to another email address.

    example: i recieve an email with subject line "Problem" at 9:00 am. I get another email in 30 minutes later with the subject line "Resolved".

    If i do not get in 30 mins the resolved email, i want to forward this problem email to another email address. how can i set this up by creating rules / scripts? please help

    • Diane Poremsky says

      I'm not sure you can do this using rules, but you'd need to use windows timer, so it would be better in a com add in. I'll give it some more thought because its an interesting idea.

  34. Michael Martin says

    Diane, Thanks for your response. Appreicate if some one can develop this addin for me. what will it cost?

  35. Anthony Parchmont says

    Hi Diane, In the “To Forward the message body to another address” How can I forward the original email as an attachment and add a custom static message body to say “ please see the attached message”

    I would be grateful for your help on this one.

    • Diane Poremsky says

      You add the text in the .body command and use .attachments add Item to add the message as an attachment.

      Because we're referring to objMsg a few times, using With/End with is better:
      with objMsg
      .Body = "my message " & vbcrlf & Item.Body
      .Subject = "FW: " & Item.Subject
      .attachments.add item
      .Recipients.Add "alias@domain.com"
      .Send
      end with

    • Anthony Parchmont says

      Hi Diane, What can I do if I just want to forward only the attachments, but just specific file extension such .xls, .doc., .pdf. Other files like .png, .gif, .jpg should not get forwarded. The code below is what I used to forward only attachments, but it attaches all attachments.

      Sub RunAScriptRuleRoutine(MyMail As MailItem)
      Dim strID As String
      Dim olNS As Outlook.NameSpace
      Dim msg As Outlook.MailItem
      Dim fwd as Outlook.MailItem

      strID = MyMail.EntryID
      Set olNS = Application.GetNamespace("MAPI")
      Set msg = olNS.GetItemFromID(strID)
      ' do stuff with msg, e.g.
      Set fwd = msg.Forward
      fwd.Body = ""
      fwd.To = "who@where.com; who2@where2.com"
      fwd.Send

      Set msg = Nothing
      Set fwd = Nothing
      Set olNS = Nothing
      End Sub

      Please help me with one.

    • Diane Poremsky says

      with the other dim's
      Dim attCount As Long
      Dim strFile As String
      Dim sFileType As String

      Stick this in before the send:
      fwd.To = "who@where.com; who2@where2.com"
      attCount = fwd.Attachments.Count

      For i = attCount To 1 Step -1
      strFile = fwd.Attachments.Item(i).filename
      sFileType = LCase$(Right$(strFile, 4))

      Select Case sFileType
      ' file extensions you want to keep
      Case ".pdf", ".doc", "docx", "xlsx"
      ' do nothing
      Case Else
      ' delete all other attachments
      fwd.Attachments.Item(i).Delete
      End Select
      Next i
      fwd.Display ' .send

  36. Ken Rogers says

    I have a custom form that users enter a URL in one field and then, with some VB scripting, the recipient can click on a separate button to launch the URL. This works great until the original recipient forwards the form. When forwarded, the VB scripting gets disabled so no links. Funny thing - I opened the forwarded form in my developer tab and ran from there and the links worked.

    • Diane Poremsky says

      1) It needs to be published or at least saved in the templates folder if you aren't using Exchange and have it in the org forms library.
      2) Outlook security has a setting to allow script in folders. File, Options, Trust Center, Email security

    • Ken Rogers says

      I should have said - each user has the form published in their personal forms library. My company doesn't support forms so I can't get access to the organizational library. And all the users can access the form, create one, and receive with no problem. It's just on forwarding when the script gets disabled.

    • Diane Poremsky says

      I think the problem is that the forwarded copy is one-offed and scripts are disabled in one-off forms for security reasons.

  37. Josh Heo says

    Sorry.. I am not sure if my previous question was uploaded.

    I cannot see pictures when I use this script to auto forward emails.
    I see "x" and "the linked image cannot be displayed"

    How can I correct it?

    • Diane Poremsky says

      Are you using the one to forward the message body (objMsg.Body = Item.Body)? If the images are attached/embedded, you also need to copy the attachments over.
      Add this line after the body line:
      CopyAttachments objMsg, Item

      and use this function:

      Sub CopyAttachments(objSourceItem, objTargetItem)
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set fldTemp = fso.GetSpecialFolder(2) ' TemporaryFolder
      strPath = fldTemp.Path & "\"
      For Each objAtt In objSourceItem.Attachments
      strFile = strPath & objAtt.FileName
      objAtt.SaveAsFile strFile
      objTargetItem.Attachments.Add strFile, , , objAtt.DisplayName
      fso.DeleteFile strFile
      Next

      Set fldTemp = Nothing
      Set fso = Nothing
      End Sub

    • Josh Heo says

      Hi, Thank you so much for helping!!
      So.. Like this?? I have no experience on this...

      Sub SendNew(Item As Outlook.MailItem)

      Dim objMsg As MailItem
      Set objMsg = Application.CreateItem(olMailItem)

      objMsg.HTMLBody = Item.HTMLBody
      CopyAttachments objMsg, Item

      Sub CopyAttachments(objSourceItem, objTargetItem)
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set fldTemp = fso.GetSpecialFolder(2) ' TemporaryFolder
      strPath = fldTemp.Path & "\"
      For Each objAtt In objSourceItem.Attachments
      strFile = strPath & objAtt.FileName
      objAtt.SaveAsFile strFile
      objTargetItem.Attachments.Add strFile, , , objAtt.DisplayName
      fso.DeleteFile strFile
      Next

      Set fldTemp = Nothing
      Set fso = Nothing

      objMsg.Subject = "FW: " & Item.Subject
      objMsg.Recipients.Add "junheo01@gmail.com"

      objMsg.Send

      End Sub

    • Diane Poremsky says

      Close, the function is separate, added after the macro.

      Sub SendNew(Item As Outlook.MailItem)

      Dim objMsg As MailItem
      Set objMsg = Application.CreateItem(olMailItem)

      objMsg.HTMLBody = Item.HTMLBody
      CopyAttachments objMsg, Item
      objMsg.Subject = "FW: " & Item.Subject
      objMsg.Recipients.Add "junheo01@gmail.com"

      objMsg.Send

      End Sub

      Sub CopyAttachments(objSourceItem, objTargetItem)
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set fldTemp = fso.GetSpecialFolder(2) ' TemporaryFolder
      strPath = fldTemp.Path & "\"
      For Each objAtt In objSourceItem.Attachments
      strFile = strPath & objAtt.FileName
      objAtt.SaveAsFile strFile
      objTargetItem.Attachments.Add strFile, , , objAtt.DisplayName
      fso.DeleteFile strFile
      Next

      Set fldTemp = Nothing
      Set fso = Nothing
      End Sub

    • Jill Naus says

      I get an Object Required error at this line:

      objTargetItem.Attachments.Add strFile, , , objAtt.DisplayName

    • Diane Poremsky says

      Are you using this macro? If you need the source and target emails, not the file.
      Sub CopyAttachments(objSourceItem, objTargetItem)

    • Jill Naus says

      Thanks, Diane. I no longer get the error, but my forwarded emails still aren't showing their images. The images are included as attachments, but not showing in their proper place in the message body. This is the script I am using:

      Sub FwdAdminEmailtoPlanner()
      Dim adminaddress As String
      Dim objMail As Outlook.MailItem
      Dim objMsg As Outlook.MailItem
      Dim strbody As String
      Dim oldmsg As String
      Dim senderaddress As String
      Dim addresstype As Integer

      ' Set this variable as your helpdesk e-mail address
      adminaddress = "address@server.com"

      Set objItem = Application.ActiveWindow.Selection.Item(1)
      Set objMail = objItem.Forward

      'adds the senders e-mail address as the created by object for the ticket and appends the message body
      strbody = "Admin team,Please see below (and attached) for an admin request that was sent directly to a Planner. Will you please reach out to the customer and give them the correct contact information for future requests? Thank you."

      ' Sender E=mail Address
      senderaddress = objItem.SenderEmailAddress

      'Searches for @ in the email address to determine if it is an exchange user
      addresstype = InStr(senderaddress, "@")

      ' If the address is an Exchange DN use the Senders Name
      If addresstype = 0 Then
      senderaddress = objItem.SenderName
      End If

      Set objMsg = Application.CreateItem(olMailItem)

      objMsg.HTMLBody = strbody & objItem.Forward.HTMLBody
      If objItem.Attachments.Count > 0 Then
      Call CopyAttachments(objItem, objMsg)
      End If
      objMsg.To = adminaddress
      objMsg.Attachments.Add objItem, olEmbeddeditem
      objMsg.Subject = objItem.Subject

      objMsg.Display

      Set objItem = Nothing
      Set objMail = Nothing
      End Sub

      Sub CopyAttachments(objSourceItem, objTargetItem)
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set fldTemp = fso.GetSpecialFolder(2) ' TemporaryFolder
      strPath = fldTemp.Path & "\"
      For Each objatt In objSourceItem.Attachments
      strFile = strPath & objatt.FileName
      objatt.SaveAsFile strFile
      objTargetItem.Attachments.Add strFile, , , objatt.DisplayName
      fso.DeleteFile strFile
      Next

      Set fldTemp = Nothing
      Set fso = Nothing
      End Sub

    • Diane Poremsky says

      When you forward, the CID code changes and outlook can't identify the when attachment belongs to which placeholder.

    • Diane Poremsky says

      What you need to do is remove the image from the new message then re-imbed it so a new CID is generated, but i don't have any code that does that.

      If the image properly displays when you click forward and send it, it should work to replace this objMsg.HTMLBody = strbody & objItem.Forward.HTMLBody with word code to insertbefore. The only problem with that code is that you need to display the message. The flash it creates is really annoying if you are trying to work.

  38. Josh Heo says

    Hi, Thanks again for the help..
    Hmm.. I am still unable to see the picture after auto forwarding it to myself to test it...
    I tried to "click here to download pictures..." and still same "x"
    Anything else to try out?

    Thank you.

    • Diane Poremsky says

      Were the images attached in the original message or linked? If the macro doesn't add image attachments to the forward, then they are linked - and the link is messed up. Look at the source code of the original and forward message and see how the image is added and if there is anything different in the forward.

    • Josh Heo says

      I'm not sure if the image is attached or link in the original email.
      When I forward the original email manually, the picture shows as it should. Error only happens when I use the script to auto-forward the email.

      Only major difference I see is this.
      ------------------------------------------
      Original email source
      X-MS-Has-Attach: yes

      Script Forwarded Email source
      X-MS-Has-Attach:
      -------------------------------------------

    • Josh Heo says

      Oh.. When I look at the email body's source code, it is whole lot different... not even sure where to begin..
      I'll try and let you know..
      Thank you so much!! feels like I'm getting there!

    • Josh Heo says

      Ok. Found the difference. There's a lot more code written in the original email where the pictures are inserted.

      Original email body source (I'm starting from where I see major difference)

      @list l0:level9
      {mso-level-number-format:bullet;
      mso-level-text:\F0A7;
      mso-level-tab-stop:4.5in;
      mso-level-number-position:left;
      text-indent:-.25in;
      mso-ansi-font-size:10.0pt;
      font-family:Wingdings;}
      @list l1
      {mso-list-id:829977713;
      mso-list-template-ids:-1328494356;}
      @list l1:level1
      {mso-level-number-format:bullet;
      mso-level-text:\F0B7;
      mso-level-tab-stop:.5in;
      mso-level-number-position:left;
      text-indent:-.25in;
      mso-ansi-font-size:10.0pt;
      font-family:Symbol;}
      @list l1:level2
      {mso-level-number-format:bullet;
      mso-level-text:\F0B7;
      mso-level-tab-stop:1.0in;
      mso-level-number-position:left;
      text-indent:-.25in;
      mso-ansi-font-size:10.0pt;
      font-family:Symbol;}

      AND SO ON.....
      =========================================
      Script auto forwarded Email body source

      @list l0:level9
      {mso-level-number-format:bullet;
      mso-level-text:;
      mso-level-tab-stop:4.5in;
      mso-level-number-position:left;
      text-indent:-.25in;
      mso-ansi-font-size:10.0pt;
      font-family:Wingdings;}
      @list l1
      {mso-list-id:1687898031;
      mso-list-template-ids:2114627028;}
      @list l2
      {mso-list-id:2091350142;
      mso-list-template-ids:-2020052588;}
      ol
      {margin-bottom:0in;}
      ul
      {margin-bottom:0in;}

      and it ends soon
      ==========================================
      I also see that in the

      original email,.
      mso-level-text:\F0B7;

      Where as Script Email is
      mso-level-text:;

    • Diane Poremsky says

      Images are missing, correct? You want to look for img tags.
      <img src="http://www.domain.com/s.png" alt="">

      They'll either begin with http:// (or just //) or cid:

    • Josh Heo says

      I ran and saw the source code again and it looks like I have it backwards.

      Script Email is
      mso-level-text:\F0B7;

      original email is
      mso-level-text:;

      Also, forwarded email source code is a lot longer...

      I am not sure if it makes any sense... confused..

    • Josh Heo says

      found the img tags...

      src="cid:image001.jpg@01CFB225.F6ED3AB0"

      Only issue is that both source is same for img tags....

    • Diane Poremsky says

      Wild guess: the GUID used with the cid (the part after the @) changes - oh, its in the header as a multipart mime. I'll see if there is a way to do it. You might need to use Forward instead of copying the body.

  39. Ashleigh says

    Hi, I have used script to change the name of an email and auto forward it regularly. Is was wondering if there is a way i can ensure the person who receives it can not auto forward it?

    • Diane Poremsky says

      No, you can't. Even things like signing it with a digital signature won't have much effect - the recipient can copy the text if they really want to share it.

    • Ashleigh says

      Ok, thanks! So the only way to select "do not autoforward" is manually each time through options-permissions-donotautoforward? If the recipient wants to copy the text I know i cant do much about that, but was hoping to make it harder for them to forward it automatically!

    • Ashleigh says

      Ok thanks! Just checking then, the only way to do this is manually by selecting options-permissions-donotforward? I know if soomeone wants to copy the text i cant really stop them, but just wanted to make it harder for them to forward it automatically!

    • Ashleigh says

      Thanks Diane, much appreciated. Just to confirm then, the only way to stop someone forwarding it easily is through options-permissions-do not forward. I know i cant stop anyone from copying the text and forwarding but was hoping to make it a bit harder!

    • Diane Poremsky says

      Correct. If you use IRM, it can block forwarding attachments, not sure about messages though. I discovered the other day that you don't need a corporate irm server to use it. You only need a non-free/non-isp address - microsoft calls it an organizational account - http://technet.microsoft.com/en-us/library/dn592127
      i set up an account for testing but haven't had a lot of time to use it.

  40. Ry says

    How feasible is it to write a program to create rules in Outlook? I have a batch of rules I'd like to give to multiple users and would love to not have to create them for each person. The variables in the rules are almost the same for every user and could be tweaked to make it the same for every user as well.

  41. Dheeraj Poojari says

    Diane, brilliant post on outlook automation. Quick query to the one above(linked images by Josh). Instead of forwarding, I am using "reply" to respond using a particular oft template. The images do not come up, and they show the linked images error. Can you help me with modifying the code? Below is the code.

    Sub ForwardGeneralNew()
    Dim oExplorer As Outlook.Explorer
    Dim oMail As MailItem
    Dim Item As MailItem
    Dim rMail As MailItem
    Set oExplorer = Application.ActiveExplorer
    Set oMail = oExplorer.Selection.Item(1).Forward
    oExplorer.Selection.Item(1).UnRead = False
    Set rMail = Application.CreateItemFromTemplate("C:\Macros\General.oft")
    On Error GoTo Release
    If oExplorer.Selection.Item(1).Class = olMail Then
    oMail.Subject = "Testing a auto reply"
    oMail.HTMLBody = rMail.HTMLBody _
    & vbCrLf & oMail.HTMLBody
    CopyAttachments oMail, Item
    oMail.Recipients.Add "x@y.com"
    oMail.Recipients.Item(1).Resolve
    If oMail.Recipients.Item(1).Resolved Then
    oMail.Display
    ' oMail.Save
    'oMail.Send
    oMail.UnRead = False
    Else
    MsgBox "Could not resolve " & oMail.Recipients.Item(1).Name
    End If
    Else
    MsgBox ("Not a mail item")
    End If
    Release:
    Set oMail = Nothing
    Set oExplorer = Nothing
    End Sub

  42. Lance Hames says

    I am looking for a solution to send a particular draft containing unique data to a customer after the notification that their invoice has been paid comes in from PayPal. Do you have any idea where I should start?

  43. Lance Hames says

    Diane,

    I am trying to send an email draft when a particular email arrives. Where should I look to start for this? Is it something that can be done with this script?

    Thanks,
    Lance

    • Diane Poremsky says

      It would be easier to save the draft as a template and reply with the template. That can be done using either with a rule directly or using a run a script rule.

    • Lance Hames says

      How would I go about doing that? I couldn't quite figure out where to start. I'm at like ground zero with Outlook and VBA

    • Diane PoremskyDiane Poremsky says

      Create the message then use File, Save as and select template. You can save it to Documents or anywhere you want, just note where it is saved. Then you would use the template macro on this page to reply to them.

  44. Joe says

    Hi Diane

    I copied your script 'forward message body to another address'. And created a rule to run script from any incoming email, excluding calendar invitations (in the rule). It worked twice. Then I received a calendar invite, and it didn't forward (as planned). However, the script doesn't work for normal emails anymore. Any advise.

  45. Fabio says

    Hi Diane,
    I just migrated from Lotus notes to Outlook 2010 and previously I had a rule that every message I received I would get a full copy on another email address. This meant that in the receiving inbox I could search by sender as it was showing exactly the same template as on my lotus note emails. This is different from forwarding a received message where in the address box I will have my forwarding address. I hope it is clear, and I wonder if it is possible at all with a script....

    Many thanks for your time.

    Fabio

  46. DAVID NORDEL says

    Hi Diane,
    I am attempting to write a script that will forward part of the body of a message up to a certain string of characters, while maintaining the formating for pictures and text. I am trying to forward a newsletter to an outlook contact group, and I am unsure which function to call to copy the message body. I believe the pictures are embedded, but I am not exactly sure. I have yet to even get to the point where I can add in code to cut-off the body as I am still trying to just get the whole message to properly forward. My code is as follows:

    Sub SendNew(Item As Outlook.MailItem)

    Dim objMsg As MailItem
    Set objMsg = Application.CreateItem(olMailItem)

    objMsg.Body = Item.Body
    CopyAttachments objMsg, Item
    objMsg.Subject = Item.Subject
    objMsg.Recipients.Add ("COI Test Group")

    objMsg.Send

    End Sub

    Sub CopyAttachments(objSourceItem, objTargetItem)
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fldTemp = fso.GetSpecialFolder(2) ' TemporaryFolder
    strPath = fldTemp.Path & "\"
    For Each objAtt In objSourceItem.Attachments
    strFile = strPath & objAtt.FileName
    objAtt.SaveAsFile strFile
    objTargetItem.Attachments.Add strFile, , , objAtt.DisplayName
    fso.DeleteFile strFile
    Next

    Set fldTemp = Nothing
    Set fso = Nothing
    End Sub

    This script currently forwards the message without formatting or pictures, but includes the hyperlinks to the pictures. HELP! PLEASE!!!

    Thank you for your time and consideration, and I look forward to hearing form you soon.

    • Diane PoremskyDiane Poremsky says

      Forwarding embedded pictures is difficult - they are attached then embedded in the code using a CID code. Do the images stay embedded if you forward the message? If so, it might be better to forward and remove the header.

      Try using objMsg.HTMLBody = Item.HTMLBody

    • DAVID NORDEL says

      Thank you for the quick response Diane. I did, in fact, try using objMsg.HTMLBody = Item.HTMLBody without any luck. And the images do stay embedded when forwarding. I will try forwarding and removing the header. Thanks again!

  47. Moh says

    Hi All,

    Can anyone help with a script i have written to create and send a new email to a target recipient. My intention is to evaluate the incoming message subject then create a new message with the original subject, body and most importantly attachment. I've used the forwarding example above as a basis but not seeing any activity.

    The script is as follows. Thanks!

    Public Sub fwdReport(Item As Outlook.MailItem)

    Dim objMsg As MailItem

    If Item.Subject = "z" Then

    Set objMsg = Application.CreateItem(olMailItem)

    objMsg.Body = Item.Body
    objMsg.Subject = Item.Subject
    objMsg.Attachments = Item.Attachments

    objMsg.Recipients.Add "RECIPIENT'S EMAIL"

    objMsg.Send

    End If

    End Sub

    • Diane PoremskyDiane Poremsky says

      The rule that checks the subject calls the macro when a match is found, so you don't need this line (or the end if):
      If Item.Subject = "z" Then

      the rest should work.

  48. wdp says

    Diane et al-

    I created a script similar to the forward email - although instead of forwarding email body, it just forwards the name of the sender as the body. This worked great for 1 day - forwarding ~20 emails from Outlook 2010 to another email address perfectly.
    Today, I changed the email address where the forwards are sent too and Outlook seems to have stopped running the rule/script. The computer was never logged/turned-off. Any idea why the rule would stop working (I assume this is at the rule level because I am not seeing anything in the sent box to indicate the rule/script was run)?

    wdp

    • Diane PoremskyDiane Poremsky says

      Did you sign the original macro using a digital signature? If so, you need to remove the signature and re-sign it after editing it.

  49. wdp says

    If I open the VBA editor and search for digital signature it sys:
    Certificate name: [No certificate]
    Sign as
    Certificate name: [No certificate]

    This script is connected to my work email account and I'm wondering if somehow Admin has removed my ability to fwd incoming messages? That would explain why a couple dozen worked and then suddenly it stopped?

    wdp

  50. wdp says

    Diane- After creating the self cert as described above, I realized I never closed outlook.
    Upon re-open, I ran the rule and it worked!
    Thank you so very much for your input/help on this.
    Walt

    • Anonymous says

      OK apparently I was missing the step where you have to save before closing VBA. Once I saved in VBA, then closed, then closed Outlook, and clicked yes when asked to save again, it worked. Also, I didn't realize you could always "Trust" (by clicking the left button on the popup window before allowing the macro) it so you wouldn't have to click "enable macro" every time (middle button on that popup window) after restarting Outlook, so that is nice that it seems to just stay active now. Now my problem is I can't find the Macro in the Macro list when I am trying to add it to the toolbar/ribbon using your instructions: http://www.slipstick.com/developer/how-to-use-outlooks-vba-editor/

    • Diane PoremskyDiane Poremsky says

      Run a script rules won't be the macro list since it can't be run manually. You would need ot edit the macro or use a stub to call it, if you wanted to use it in a script and call it manually.

      You can use this stub to run a macro from a button and also in a script. Replace macro-name with the name of the macro. This works on the selected message.

      Public Sub RunManaully()
      Dim objItem
      Set objItem = Application.ActiveExplorer.Selection.Item(1)
      macro-name objItem
      End Sub

    • Diane PoremskyDiane Poremsky says

      In the VB editor, go into tools, digital signature and remove the signature. click save in the VB Editor then close Outlook and click Save again, if asked.

  51. Anonymous says

    Another question - ever since I added my macro months ago I will intermittently (maybe once per day) get the error popup " "Rules In Error, The Operation Failed" and the macro doesn't work. I have generally just closed the error message, and gone into Manage Rules & Alerts and re-checked the box next to my rule which fixes the problem, but it is annoying. Any idea why this would be happening or how to fix it?

    • Diane PoremskyDiane Poremsky says

      Is this the macro that is filing? Is it being triggered on meetings, receipts, or other non-mail mail?

    • Anonymous says

      Yes it is related to the macro because when the error message appears it will stop working. I don't get read receipts, and I rarely get meetings, but it is definitely triggered on regular email.

    • Diane PoremskyDiane Poremsky says

      The only thing I am aware of that can cause problems in rules is if you receive a lot of mail fast - the rule can fail to trigger. This doesn't normally cause it to be disabled as a failure, but it's possible if the script is busy, it could cause the rule to be marked a failure.

      One possible fix is to move the meat of the script into a second script. The script the rule uses keeps any If statements you might use to increase filtering then hands off to the script that actually does the work. I found this helps to prevent failures on one macro i use that processes a lot of mail.

    • Anonymous says

      Here is the script - how would I split into a second script as you suggest? It already seems pretty basic:

      Sub SendNew(Item As Outlook.MailItem)

      Dim objMsg As MailItem
      Set objMsg = Application.CreateItem(olMailItem)

      objMsg.Body = Item.SenderEmailAddress
      objMsg.Subject = Item.Sender
      objMsg.Recipients.Add "EMAILCENSORED@EMAILPROVIDER.COM"

      objMsg.DeleteAfterSubmit = True

      objMsg.Send

      End Sub

    • Diane PoremskyDiane Poremsky says

      At the very basic, this should work. If you need to filter using an If then statement, you'll do it in the sendnew macro before handing it off to the sendmail macro.

      Sub SendNew(Item As Outlook.MailItem)

      sendmail item
      End Sub

      Private Sub SendMail(Item As Outlook.MailItem)
      Dim objMsg As MailItem
      Set objMsg = Application.CreateItem(olMailItem)
      objMsg.Body = Item.SenderEmailAddress
      objMsg.Subject = Item.Sender
      objMsg.Recipients.Add "EMAILCENSORED@EMAILPROVIDER.COM"
      objMsg.DeleteAfterSubmit = True
      objMsg.Send
      End Sub

    • Anonymous says

      Thanks - so can i just add those 3 lines at the top of my current macro, or are you saying I have to create a separate project in VBA for these new lines?

    • Diane PoremskyDiane Poremsky says

      You'll add this macro:
      Sub SendNew(Item As Outlook.MailItem)
      sendmail item
      End Sub

      This macro calls the Sendmail macro and hands the processing off to it, leaving it free to process the next message.

  52. wdp says

    Diane et al-
    Lets say I want to include the date/time the original email message was received in the subject of the message that gets forwarded.
    What is the "item" for that?

    Currently I am using the following in the subject line:
    objMsg.Subject = Item.Sender & Item.Subject

    Which gives me the sender and subject but I'd like to include the time/date as well.
    Thanks,

    wdp

  53. Zachary Bass says

    HI Diane: I've added a rule along with your code sample below to ThisOutlookSession in order to forward an e-mail with attachment but I would also like to remove the four lines below that are added to a forwarded message. The idea is remove these lines so that the e-mail appears as new and not forwarded. The lines are not part of the body and I'm not clear how to delete. Thanks for any help.

    From: johndoe@xyzcompany.com
    Sent: Monday, March 16, 2015 2:34 PM
    To: jeff@123company.com
    Subject: Weekly Test Report

    '// Code sample
    Sub TestForward(item As Outlook.MailItem)
    Dim myForward As Object

    item.Subject = "Weekly Test Report"
    item.Save

    Set myForward = item.Forward
    myForward.Recipients.Add "joeblow@comcast.net"

    myForward.Send

    End Sub

    • Diane PoremskyDiane Poremsky says

      Removing the lines is hard - but you could use myforward.body = item.body instead.

  54. Zachary Bass says

    Works great. Thank you very much. Similarly I set the myForward.Subject to Item.Subject to get rid of the "Fwd: " in the subject.

    Item.Body = ""
    Item.Save
    Set myForward = Item.Forward
    With myForward
    .Body = Item.Body
    .Subject = Item.Subject
    End With

  55. Tana says

    Ok I have a general mailbox to which users submit meeting agenda items. In addition, I use this email to respond with questions, follow-up, & clarifications. This is a business email & we have an exchange server.

    From what I understand if I use a Rule, it only runs when Outlook is open and running.

    If I use Automatic Replies, it only sends one reply per sender.

    What I want is a auto-reply acknowledging receipt of submission, so only one reply per user per subject.

    Example: If bob@xyz.com sends in an email with subject line "Minutes for approval". I want him to get one autoreply. If I email bob asking for clarification and he replies to my email I do not want him to get the autoreply (assuming the subject line remains the same).

    Also if bob@xyz.com sends another email, but with subject line "Board appointment", I want him to get a separate autoreply.

    Every rule I see would work ok if bob only sent one email, but when he sends multiple with multiple subjects...that's where I need help...

    • Diane PoremskyDiane Poremsky says

      You can do this using vba but, like rules, it will only run when outlook is open. You'd filter for messages beginning with RE: or FW: then send a reply to the remaining.

  56. Stephen M says

    Hello Diane
    I would like to change the subject of an autoBCC rule i found
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim objRecip As Recipient
    Dim strMsg As String
    Dim res As Integer
    Dim strBcc As String
    On Error Resume Next

    ' #### USER OPTIONS ####
    ' address for Bcc -- must be SMTP address or resolvable
    ' to a name in the address book
    strBcc = "SomeEmailAddress@domain.com"

    Set objRecip = Item.Recipients.Add(strBcc)
    objRecip.Type = olBCC
    If Not objRecip.Resolve Then
    strMsg = "Could not resolve the Bcc recipient. " & _
    "Do you want still to send the message?"
    res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
    "Could Not Resolve Bcc Recipient")
    If res = vbNo Then
    Cancel = True
    End If
    End If

    Set objRecip = Nothing
    End Sub

    how would change the subject of this rule?
    thank you

    • Diane PoremskyDiane Poremsky says

      Add the itemsend macro (the second macro to ThisOutlookSession. It gets the addresses in the CC field and cc's the message. If you wanted to send all messages to a specific address, change objMsg.CC = Item.CC to objMsg.CC = "email@address.com". if you want it to apply to all messages, you'll need to move the end if up under Next i.

    • Diane PoremskyDiane Poremsky says

      it shouldn't cause it to crash. Does it crash at all if you disable the rule? (I'm thinking something else is causing it to crash.)

  57. Anonymous says

    No - when I say crash I don't mean Outlook shuts down or the computer freezes, I just mean the rule fails and it won't work again until I go in and check off the box in the rules again.

  58. seb says

    Hi,

    I receive an email from a generic address, with the address of a person in CC .

    I would like to transfer the email by adding a model answer, ONLY to the person in CC.

    how to do that?

    thanks.

    • Diane PoremskyDiane Poremsky says

      Are you replying with an answer or using a template? Assuming it's the only name in the CC field, use objMsg.to = item.cc or objMsg.Recipients.Add item.cc

  59. seb says

    Thanks, it seems to work with objMsg.CC = Item.CC

    I have another noob question: the script only work when outlook is open, right?

    How to deal with messages i received when outlook is closed? sorry if i miss something...

    • Diane PoremskyDiane Poremsky says

      Correct, it only runs when outlook is open. Unfortunately there is no way to run it if outlook isn't open - you'd need something on the server or a standalone utility that could ping the mailbox.

  60. seb says

    OK. I think I need a script that starts manually, checks the mails of a specific folder, sends and moves them to a subfolder. Advice?

    • Diane PoremskyDiane Poremsky says

      RTL isn't exposed in the object model, but if you are writing the HTML using code, using this should work -

      text goes here

Leave a Reply

Please post long or more complicated questions at OutlookForums by Slipstick.com.

If the Post Comment button disappears, press your Tab key.