Mark as read

  • Thread starter mkboynton via OfficeKB.com
  • Start date
M

mkboynton via OfficeKB.com

I have the following code in my Outlook today page to list the emails in my
inbox and provide a link to open them. My question is how do I mark the
emails as read when I click on them?


<script language="VBScript" type="text/vbscript">

Function GetInboxSubjects()
Dim theApp
Dim theOLNS
Dim inboxFolder
Dim mSubject, MyArray, MyMsg

Set theApp = window.external.OutlookApplication
Set theOLNS = theApp.GetNameSpace("MAPI")
Set inboxFolder = theOLNS.GetDefaultFolder(6)

For Each InboxItem In inboxFolder.Items

'Check if message has been read or not
If InboxItem.UnRead = True then
TF = "No"
Else
TF = "Yes"
End If

'Email information table
mList = "<TABLE WIDTH='100%' BORDER='0' CELLPADDING='3' CELLSPACING='0'
FRAME='below' style='table-layout:fixed'><TR><TD WIDTH='25%' style='border-
color:black; border-width:0' nowrap><A HREF='outlook:inbox/"& InboxItem.
EntryID & "' title='Read " & InboxItem.Subject & "'>" & InboxItem.SenderName
& "</A></TD><TD WIDTH='43%' style='border-color:black; border-width:0'
nowrap><A HREF='outlook:inbox/"& InboxItem.EntryID & "' title='Read " &
InboxItem.Subject & "'>" & InboxItem.Subject & "</A></TD><TD WIDTH=25%'
style='border-color:black; border-width:0' nowrap>" & InboxItem.SentOn &
"</TD><TD WIDTH='7%' style='border-color:black; border-width:0' nowrap>" & TF
& "</TD></TR>" & mList
Next

'Header table
mList = "<TABLE WIDTH='100%' BGCOLOR='Silver' BORDER='1' CELLPADDING='3'
CELLSPACING='0' FRAME='rhs' style='table-layout:fixed'><TR><TD WIDTH='25%'
style='border-color:black; border-width:0'>Sender</TD><TD WIDTH='43%'
style='border-color:black'>Subject</TD><TD WIDTH='25%' style='border-color:
black; border-width:0'>Date</TD><TD WIDTH='7%' style='border-color:
silver'>Read</TD></TR></TABLE>" & mList

'Fill the <div>
document.getElementById("Subject").innerHTML = mList

'Update the table every 30 seconds
cTimer = setTimeout("GetInboxSubjects()",30000)

Set theApp = Nothing
Set theOLNS = Nothing
Set inboxFolder = Nothing

End Function
</Script>
 
D

Dmitry Streblechenko

Have you tried to set teh Unread property to false?
Do not loop through all the messages in a folder. Use Items.Find/FindNext

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
 
M

mkboynton via OfficeKB.com

Dmitry said:
Have you tried to set teh Unread property to false?
Do not loop through all the messages in a folder. Use Items.Find/FindNext
I have the following code in my Outlook today page to list the emails in my
inbox and provide a link to open them. My question is how do I mark the
[quoted text clipped - 59 lines]
End Function
</Script>

I have tried to set the Unread property to false using an onclick event, but
it seems to ignore the onclick since I have a <a href>
 
D

Dmitry Streblechenko

What is the relevant snippet of your code? Do you call MailItem.Save?

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
mkboynton via OfficeKB.com said:
Dmitry said:
Have you tried to set teh Unread property to false?
Do not loop through all the messages in a folder. Use Items.Find/FindNext
I have the following code in my Outlook today page to list the emails in
my
inbox and provide a link to open them. My question is how do I mark the
[quoted text clipped - 59 lines]
End Function
</Script>

I have tried to set the Unread property to false using an onclick event,
but
it seems to ignore the onclick since I have a <a href>
 
M

mkboynton via OfficeKB.com

Dmitry said:
What is the relevant snippet of your code? Do you call MailItem.Save?
[quoted text clipped - 9 lines]
but
it seems to ignore the onclick since I have a <a href>


Here is what I have so far...it doen's even fire the MsgBox.
Sub MarkAsRead()
Dim theApp
Dim theOLNS

Set theApp = window.external.OutlookApplication
Set theOLNS = theApp.ActiveExplorer.Selection(1)

MsgBox "Marking as read"

If theOLNS.UnRead = True then
theOLNS.UnRead = False
theOLNS.Save
End If

Set theApp = Nothing
Set theOLNS = Nothing

End Sub
 
D

Dmitry Streblechenko

Which is a good indication that the MarkAsRead sub does not even get called,
right?

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
mkboynton via OfficeKB.com said:
Dmitry said:
What is the relevant snippet of your code? Do you call MailItem.Save?
Have you tried to set teh Unread property to false?
Do not loop through all the messages in a folder. Use
Items.Find/FindNext
[quoted text clipped - 9 lines]
but
it seems to ignore the onclick since I have a <a href>


Here is what I have so far...it doen's even fire the MsgBox.
Sub MarkAsRead()
Dim theApp
Dim theOLNS

Set theApp = window.external.OutlookApplication
Set theOLNS = theApp.ActiveExplorer.Selection(1)

MsgBox "Marking as read"

If theOLNS.UnRead = True then
theOLNS.UnRead = False
theOLNS.Save
End If

Set theApp = Nothing
Set theOLNS = Nothing

End Sub
 

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