Auto forward email that is moves into a specific outlook folder

richardwing

Member
Outlook version
Outlook 365 64 bit
Email Account
Office 365 Exchange
Hello I really love this forum. :)

I am really new to VBA.

I am looking to auto reply and auto forward the same email, each with a custom html body message, when the email arrives into a specific folder.

I located this vba to auto forward emails. but its not folder specific nor does it have the reply functionality either.

Code:
Sub ForwardEmail(Item As Outlook.MailItem)
// Determine if it’s an email
If TypeName(Item) = "MailItem" Then
    With Item.Forward
        .Subject = ("ITS - ") & Item.Subject
        .Recipients.Add "backup@email.com"
        .Recipients.Add "backup2@email.com"
        ' You need to overwrite the Body or HTMLBody to get rid of the auto signature
        .HTMLBody = Item.HTMLBody ' <-- Or use .Body for Plain Text
        '.Display ' <-- For Debug
        .Send ' <-- Put break here to Debug
End With
End If
End Sub

Could someone help with this. I am willing to pay as well. Just direct me to the correct place to discus payment.


Lastly, is there a bit of code that I can add to allow any of the vba scripts that I come across that run for inbox items to only run in specific folders?

Thanks for your time and direction.

Richard
 

Diane Poremsky

Senior Member
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
Lastly, is there a bit of code that I can add to allow any of the vba scripts that I come across that run for inbox items to only run in specific folders?
You need to use an itemadd macro for this - it watches the folder and when a new message is added, does whatever.


Code:
Option Explicit
Private objNS As Outlook.NameSpace
Private WithEvents objItems As Outlook.Items

Private Sub Application_Startup()
 
Dim objWatchFolder As Outlook.Folder
Set objNS = Application.GetNamespace("MAPI")

'Set the folder and items to watch:
Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox)
Set objItems = objWatchFolder.Items

Set objWatchFolder = Nothing
End Sub

Private Sub objItems_ItemAdd(ByVal Item As Object)

' Determine if it’s an email
If TypeName(Item) = "MailItem" Then
    
    With Item.Forward
        .Subject = ("ITS - ") & Item.Subject
        .Recipients.Add "backup@email.com"
        .Recipients.Add "backup2@email.com"
        ' You need to overwrite the Body or HTMLBody to get rid of the auto signature
        .HTMLBody = Item.HTMLBody ' <-- Or use .Body for Plain Text
        .Display ' <-- For Debug
        '.Send ' <-- Put break here to Debug
    End With

    With Item.Reply
        .Body = "Regarding: " & Item.Subject & vbCrLf & _
            "In Reply to: " & Item.Subject & vbCrLf & _
            "More required text" & vbCrLf & vbCrLf & Item.Body 
        .CC = "alias1@domain.com"
        .BCC = "alias2@domain.com"
        .Subject = "subject text- " & Item.Subject
        .Display

    End With
End If
End Sub
 

richardwing

Member
Outlook version
Outlook 365 64 bit
Email Account
Office 365 Exchange
You need to use an itemadd macro for this - it watches the folder and when a new message is added, does whatever.


Code:
Option Explicit
Private objNS As Outlook.NameSpace
Private WithEvents objItems As Outlook.Items

Private Sub Application_Startup()
 
Dim objWatchFolder As Outlook.Folder
Set objNS = Application.GetNamespace("MAPI")

'Set the folder and items to watch:
Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox)
Set objItems = objWatchFolder.Items

Set objWatchFolder = Nothing
End Sub

Private Sub objItems_ItemAdd(ByVal Item As Object)

' Determine if it’s an email
If TypeName(Item) = "MailItem" Then
   
    With Item.Forward
        .Subject = ("ITS - ") & Item.Subject
        .Recipients.Add "backup@email.com"
        .Recipients.Add "backup2@email.com"
        ' You need to overwrite the Body or HTMLBody to get rid of the auto signature
        .HTMLBody = Item.HTMLBody ' <-- Or use .Body for Plain Text
        .Display ' <-- For Debug
        '.Send ' <-- Put break here to Debug
    End With

    With Item.Reply
        .Body = "Regarding: " & Item.Subject & vbCrLf & _
            "In Reply to: " & Item.Subject & vbCrLf & _
            "More required text" & vbCrLf & vbCrLf & Item.Body
        .CC = "alias1@domain.com"
        .BCC = "alias2@domain.com"
        .Subject = "subject text- " & Item.Subject
        .Display

    End With
End If
End Sub

Thank you for the response to my post. I regret to say I am not quite sure where or how I would define the folder or sub folder I would like it to process.

If its not too much trouble could you explain that piece in detail where and how I insert the name of the folder I wish the code to work in. :)

Thanks in advance.
 

richardwing

Member
Outlook version
Outlook 365 64 bit
Email Account
Office 365 Exchange
To set a folder on the same level as the inbox would I switch out the lines like so?

Code:
Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox) 

with

Set objWatchFolder = objNS.GetDefaultFolder("folder1")

To set a subfolder of a folder on the same level as Inbox would I switch out the line like so?
Code:
Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox) 

with

Set objWatchFolder = objNS.GetDefaultFolder("folder1").Folders("fol2")


To set a subfolder of inbox folder would I switch out the line like so?

Code:
Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox) 

with

Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox).Folders("fol2")
 

Diane Poremsky

Senior Member
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
Same level as inbox:
Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox).Parent.Folders("Folder name")

Subfolder of folder at same level as inbox
Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox).Parent.Folders("Folder name").folders("name")
but... you shouldn't use so many dots.

This is better -
Set objParentFolder = objNS.GetDefaultFolder(olFolderInbox).Parent.Folders("Folder name")
Set objWatchFolder = objParentFolder.folders("name")

This is correct for a subfolder of the inbox -
Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox).Folders("fol2")

If you are using multiple folders, I would do it like this -

Set objInboxFolder = objNS.GetDefaultFolder(olFolderInbox)
Set objParentFolder = objInboxFolder.Parent.Folders("Folder name")
Set objWatchFolder = objParentFolder.folders("name")

Set objParentFolder2 = objInboxFolder.Parent.Folders("Folder name2")
Set objWatchFolder2 = objParentFolder.folders("name2")

 

richardwing

Member
Outlook version
Outlook 365 64 bit
Email Account
Office 365 Exchange
Same level as inbox:
Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox).Parent.Folders("Folder name")

Subfolder of folder at same level as inbox
Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox).Parent.Folders("Folder name").folders("name")
but... you shouldn't use so many dots.

This is better -
Set objParentFolder = objNS.GetDefaultFolder(olFolderInbox).Parent.Folders("Folder name")
Set objWatchFolder = objParentFolder.folders("name")

This is correct for a subfolder of the inbox -
Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox).Folders("fol2")

If you are using multiple folders, I would do it like this -

Set objInboxFolder = objNS.GetDefaultFolder(olFolderInbox)
Set objParentFolder = objInboxFolder.Parent.Folders("Folder name")
Set objWatchFolder = objParentFolder.folders("name")

Set objParentFolder2 = objInboxFolder.Parent.Folders("Folder name2")
Set objWatchFolder2 = objParentFolder.folders("name2")

Thank you so much.
 
Similar threads
Thread starter Title Forum Replies Date
D auto forward base on email address in body email Outlook VBA and Custom Forms 0
R Auto-create receipt from email and forward to payer Using Outlook 3
S Rule to Auto-forward/re-direct a specific incoming email to a group via BCC? Using Outlook 1
S Auto forward for multiple emails Outlook VBA and Custom Forms 0
M VBA to auto forward message with new subject and body text Outlook VBA and Custom Forms 8
J Auto Forward - Include Attachment and change Subject depending on original sender Outlook VBA and Custom Forms 3
Z Auto Forward Using Outlook 4
B Auto Save of Attachments from Multiple Emails and forward attachments to user group Outlook VBA and Custom Forms 1
L Auto Forward without presenting the original sender Outlook VBA and Custom Forms 1
J Custom Forms Don't Always Auto-Forward From Public Folder Using Outlook 0
K How to auto truncate a message to forward with Outlook Rules Using Outlook 6
T Outlook 2019 Not Using Auto Compete After Deletion of 365 Using Outlook 1
D Auto Remove [EXTERNAL] from subject - Issue with Macro Using Outlook 17
nmanikrishnan Auto-reply from default account Using Outlook 1
A Imap account not auto syncing inbox at startup Using Outlook 0
K Run a script rule to auto 'send again' on undeliverable emails? Outlook VBA and Custom Forms 1
FryW Need help modifying a VBA script for in coming emails to auto set custom reminder time Outlook VBA and Custom Forms 0
DDB VBA to Auto Insert Date and Time in the signature Outlook VBA and Custom Forms 2
V Auto-complete stopped working Using Outlook 4
M Replyall macro with template and auto insert receptens Outlook VBA and Custom Forms 1
R Auto Forwarding with different "From" Outlook VBA and Custom Forms 0
P auto-complete is hopelessly broken Using Outlook 0
R Auto Assign Category colours to Incoming Emails based on whom the email is addressed Outlook VBA and Custom Forms 3
C Auto Run VBA Code on new email Outlook VBA and Custom Forms 1
S Outlook Macro to send auto acknowledge mail only to new mails received to a specific shared inbox Outlook VBA and Custom Forms 0
V Auto-Submitted: auto-replied in header Using Outlook 0
R Auto display of new email does not work on non-default account Outlook VBA and Custom Forms 0
B Outlook 2016 Auto-archive creates new folder Using Outlook 3
J Edit auto-complete list in Outlook 2016+/365? Using Outlook 0
P Auto assign shared mailbox Outlook VBA and Custom Forms 1
M Outlook 2010 Problem with OutLook 2010 32 bit, after Windows Auto Update Using Outlook 3
P [SOLVED] Auto remove [EXTERNAL] from subject Using Outlook 16
Z Add text to auto-forwarded e-mail Outlook VBA and Custom Forms 4
N Disable Auto Read Receipts sent after using Advanced Find Using Outlook 4
Q Prompt button to auto turn on Out of Office Outlook VBA and Custom Forms 3
P Auto Insert Current Date or Time into Email Subject Outlook VBA and Custom Forms 2
S Messages moved / deleted by auto-archive are not synchronized to exchange Exchange Server Administration 8
B Outlook 2010 is Auto Purging when not configured for that Using Outlook 1
A Auto Accept Meetings from the General Calendar Using Outlook 3
R auto send email when meeting closes from a shared calendar only Outlook VBA and Custom Forms 2
S auto-mapping mailboxes in outlook impacting an ost file? Exchange Server Administration 2
M Auto expand Distribution List Before Sending Email Outlook VBA and Custom Forms 1
M Auto-export mail to Excel Outlook VBA and Custom Forms 2
Ms_Cynic Auto-pasting email content in calendar appt? Using Outlook 2
R How Do I insert images in and Auto Reply Using Outlook 3
S Received mail as part of DL, need to auto-CC the same when replying Outlook VBA and Custom Forms 5
T Have Outlook 2016 suggest email address auto complete entries directly from the user's contacts list Using Outlook 10
T Have Outlook 2016 suggest email address auto complete entries directly from the user's contacts list Using Outlook 0
P Auto scroll to specific folder in Folder Pane Outlook VBA and Custom Forms 3
C Auto categorize duplicate subjects Outlook VBA and Custom Forms 11

Similar threads

Top