我正在开发一个应用程序,用于检查Outlook邮件帐户,查找所有附件,然后将其打印出来。此时,分析的邮件将移至另一个文件夹。
我只有一个问题:有时,我收到一些带有阅读确认的邮件。该应用程序检查附件,当它必须移动邮件时,它会冻结。然后在Outlook中显示一个弹出窗口,关于发送或不发送阅读确认。
现在,我想以编程方式进行此操作,我总是希望在请求时发送阅读确认。
我找到了一个属性(ReadReceiptRequested
),如果有要发送的阅读确认,则设置为true,但我不知道如何发送它。
这是我使用的一段代码:
//I store all the emails in a List<Outlook.MailItem> named emails
Outlook.Application myApp = new Outlook.Application();
Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI");
//Check if the mail has read confirmation
if (emails[right_index].ReadReceiptRequested)
{
//How to send read confirmation?
}
//I read the mail, then I move it to another folder
emails[indice_scelto].UnRead = false;
emails[indice_scelto].Move(mapiNameSpace.Folders["New folder"]);
你能帮帮我吗?
提前致谢!
答案 0 :(得分:1)
您可以在扩展MAPI级别(C ++或Delphi)上执行此操作 - 调用IMessage :: SetReadFlag() - 传递0以发送读取收据或否则为SUPPRESS_RECEIPT。
如果Redemption是一个选项,它会公开采用SuppressReceipt布尔参数的RDOMail。MarkRead方法。
答案 1 :(得分:0)
Outlook对象模型不提供任何属性或方法。您只需将UnRead属性设置为false并将Save设置为项目。
然后,您可以使用SyncObject类的Start方法,使用指定的Send \ Receive组开始同步用户的文件夹。 Namespace类提供SyncObjects属性,该属性返回包含所有Send \ Receive组的SyncObjects集合。例如:
Public Sub Sync()
Dim nsp As Outlook.NameSpace
Dim sycs As Outlook.SyncObjects
Dim syc As Outlook.SyncObject
Dim i As Integer
Dim strPrompt As Integer
Set nsp = Application.GetNamespace("MAPI")
Set sycs = nsp.SyncObjects
For i = 1 To sycs.Count
Set syc = sycs.Item(i)
strPrompt = MsgBox( _
"Do you wish to synchronize " & syc.Name &"?", vbYesNo)
If strPrompt = vbYes Then
syc.Start
End If
Next
End Sub
我想你可以随时随地移动物品。