如何通过IMAP抑制阅读回执?

时间:2014-05-19 12:23:36

标签: exchange-server imap

我希望实现一个确认对话框,用于在我的应用程序中发送电子邮件阅读回执。该应用程序使用IMAP与邮件服务器进行通信,邮件服务器当前仅限于Microsoft Exchange Server 2010。

当发送\Seen标志时,服务器显然会自动发送收据。所以IMAP命令看起来像这样:

c1 LOGIN username password
c2 SELECT mailbox
c3 UID STORE 123 flags \Seen

(顺便说一下,这与another stackoverflow question中的解决方案形成对比,后者表示设置\Seen标志不会导致Exchange Server发送收据。)

虽然当用户想要发送阅读回执时如何处理这种情况?

我最初的想法是不设置\Seen标志。虽然这会导致服务器自动向发件人发送通知,表示已删除该电子邮件,而不会被读取,以防该邮件从服务器中删除。

在删除之前使用\Deleted\Seen标记邮件也无济于事:

c1 UID STORE 123 flags (\Deleted \Seen)
c1 UID EXPUNGE 123

那么如果用户不想发送一条消息,如何明确地禁止读取收据消息?

2 个答案:

答案 0 :(得分:3)

解决此问题的唯一方法是更改​​Exchange服务器本身的设置。从Exchange Management Shell,输入以下命令:

set-ImapSettings -SuppressReadReceipt $true

对于通过IMAP读取的邮件,您将无法从Exchange获取任何读取回执。然后由您的应用程序自行生成阅读回执。

Technet也有more detailed info about set-ImapSettings

答案 1 :(得分:1)

与Exchange Server 2016存在同样的问题。 在邮箱中我设置了不发送读取收据,但是Thunderbird仍然这样做。

您可以为某个邮箱暂停读取收据,而不是所有IMAP服务:

Set-CASMailbox mailboxname -ImapSuppressReadReceipt $true -ImapUseProtocolDefaults $false