Mark copy of sent email as read - VBA?

B

BlueWolverine

Hello,
MS OUTLOOK 2003 on XP PRO.

I would like to setup a "rule" (either a "Rules Wizard" Rule or code in VBA)
to make a copy of every sent email, move it to a folder and mark that copy as
read. I did a search on google, and found the command "Item.Unread=false"
but I have no idea how to setup the code around it.

I hate asking, "Can someone show me how to do the entirety of what I'm
asking?" but I've never programmed in Outlook before and I have no idea how
to define an event trigger. (In access, I'd be looking for something like
"OnEmailSent") I have reasonably extensive experience programming in Excel
and Access but like I said I have no idea what to do in Outlook. If anyone
can give me a hand with this I'd be very grateful.

Thanks,
 
M

Michael Bauer [MVP - Outlook]

The event you're looking for is the ItemAdd event of the folder for sent
items. That event fires when an item is added to the folder. There's an
example available in the VBA help file.

The added item is pased to the procedure, call its Copy function, which
returns a new item. For that you can call Move which returns the moved item.
For that call Unread=false, then Save.

--
Best regards
Michael Bauer - MVP Outlook
Category Manager - Manage and share your categories:
SAM - The Sending Account Manager:
<http://www.vboffice.net/product.html?lang=en>


Am Mon, 17 May 2010 05:41:01 -0700 schrieb BlueWolverine:
 
B

BlueWolverine

Thus far my code isn't even triggering. At least it's not failing or
corrupting my inbox but below is not triggering. All of the below code is in
a class module. Please help!

Initialize_handler

Dim myolApp As New Outlook.Application
Public WithEvents myOlItems As Outlook.Items

Public Sub Initialize_handler()
Set myOlItems =
myolApp.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail).Items
End Sub

Private Sub myOlItems_ItemAdd(ByVal myItem As Object)

Dim myInbox As Outlook.MAPIFolder
Dim myFolder As Outlook.MAPIFolder
Dim myNewFolder As Outlook.MAPIFolder

Set myFolder = myNameSpace.GetDefaultFolder(olFolderSentMail)
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myNewFolder = myInbox.Folders("EMAIL") 'EMAIL is in a PST file.

myItem.Move myNewFolder
myItem.UnRead = False
myItem.Save

End Sub


--
BlueWolverine
MSE - Mech. Eng.
Go BLUE!
 
M

Michael Bauer [MVP - Outlook]

Put the code into the module ThisOutlookSession, and add this:

Private Sub Application_Startup()
Initialize_handler
end Sub

Application_Startup is the procedure called by Outlook at startup, and that
one's found only in ThisOutlookSession.

--
Best regards
Michael Bauer - MVP Outlook
Category Manager - Manage and share your categories:
SAM - The Sending Account Manager:
<http://www.vboffice.net/product.html?lang=en>

Am Tue, 18 May 2010 07:02:01 -0700 schrieb BlueWolverine:
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top