Auto forward email that is moves into a specific outlook folder

Status
Not open for further replies.

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
 
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
 
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.
 
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")
 
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")

 
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.
 
Status
Not open for further replies.
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
C New pc, new outlook, is it possible to import auto-complete emailaddress Using Outlook 4
R Outlook 365 VBA AUTO SEND WITH DELAY FOR EACH EMAIL Outlook VBA and Custom Forms 0
Nufc1980 Outlook "Please treat this as private label" auto added to some emails - Help. Using Outlook 3
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
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 21
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

Similar threads

Back
Top