How to mark a given email as read?


Is there any activity to set a given email message as read?

In the preinstalled standard activities there is no activity that does this action.
Is there any package available containing such activity?

Or how have you been handling such kind of situation?

1 Like

When you retrieve the message, it has an option to mark it read.

Yes, I’m aware of that.
Nevertheless I want to mark an email address only after doing some processing.

For your current situation you can achive results using following steps

1.Read all unread mails -do not mark them as read processing and filter mail that you want to mark as read Get unique identifier from mail such as sender ,subject (use combination for better results).get these in datatable loop datatable , use read mails activity with read mail option true and use unique filter



@rahatadi, thanks for your reply.

Imagine I have only 2 unread emails.
I will make some processing on the 1st email and if the processing has been done correctly I want immediately after mark that email as read. Only aftewards I will go to the 2nd email and process that 2nd one. And will mark afterwards that 2nd one as read, if the process on the 2nd one has been done correctly.


Refer this post


That invoke code activity does not work. I already saw this info and tried it last week.
“Unread” is not a class belonging to mail message objects.


i have simulated your condition with smallest possible way and so there are many things which we can improve in process.

i am using outlook for this.

Main.xaml (7.2 KB)

let me know if anything is unclear about process


Thanks @rahatadi, but that’s really not what I want, because I initially get all the outlook messages using a given filter. Meaning that I’m unable to set a specific email from that filter group as read.

As a workaround I’m changing the status of the processed email message as “Completed”, instead of setting it as “Unread”.

could you send some more details of your case ? it seems to be more inserting to me…lets see what we can do together


you can try this vb code

Const olFolderDeletedItems = 3
Dim Items
Dim objSubject
Dim Arg
Set Arg = WScript.Arguments
Set objOutlook = CreateObject(“Outlook.Application”)
Set objNamespace = objOutlook.GetNamespace(“MAPI”)
'Set objInbox = objNamespace.GetDefaultFolder(olFolderInbox)
Set objInbox = objNamespace.Session.GetDefaultFolder(olFolderDeletedItems).Parent._
Set Items = objInbox.Items
Items.Sort “[Received]”,True

Sub MarkEmailUnRead(objItems)
For Each objItem in objItems
objSubject = Arg(0)
objsubject = objItem.subject
if Instr(objsubject,objSubject) <> 0 then
objItem.UnRead = True
Exit For
end if
End Sub

save above code as .vbs
and use start process with mail subject as argument

Hello @jcab,

I also struggled for this scenario and I created a custom activity package that has mark as read/unread mail message activity.

I hope it will be helpful to you too. I would be happy to get a feedback on the activity if you try it.



Thanks !

Do you have any documentation on how to us it?