Exchange server 如何通过IMAP抑制读回执?

Exchange server 如何通过IMAP抑制读回执?,exchange-server,imap,Exchange Server,Imap,我想实现一个确认对话框,用于在我的应用程序中发送电子邮件阅读收据。该应用程序使用IMAP与邮件服务器通信,邮件服务器目前仅限于Microsoft Exchange server 2010 当发送\Seen标志时,服务器显然会自动发送收据。因此,IMAP命令看起来像这样: c1 LOGIN username password c2 SELECT mailbox c3 UID STORE 123 flags \Seen (顺便说一句,这与中的解决方案不同,后者表示设置\Seen标志不会导致Exch

我想实现一个确认对话框,用于在我的应用程序中发送电子邮件阅读收据。该应用程序使用IMAP与邮件服务器通信,邮件服务器目前仅限于Microsoft Exchange server 2010

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

c1 LOGIN username password
c2 SELECT mailbox
c3 UID STORE 123 flags \Seen
(顺便说一句,这与中的解决方案不同,后者表示设置
\Seen
标志不会导致Exchange服务器发送收据。)

但是,当用户不想发送已读回执时,如何处理这种情况

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

在删除邮件之前,将邮件标记为
\Deleted
\Seen
,也没有帮助:

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

因此,如果用户不想发送已读回执邮件,如何显式抑制已读回执邮件?

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

set-ImapSettings -SuppressReadReceipt $true
然后,对于通过IMAP读取的邮件,您将无法从Exchange获得任何读取收据。然后由应用程序自己生成读取收据


Technet也有。

在Exchange Server 2016上也有同样的问题。 在邮箱中,我已设置为不发送read Receipt,但Thunderbird仍然这样做

您可以为特定邮箱而不是所有IMAP服务取消读接收:

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

这是非标准的IMAP行为。我想你的意思是,在这种情况下,自动发送读取回执是非标准的。那对我来说意味着什么呢?有没有办法避免这种行为?请注意,我没有访问服务器配置的权限。可能没有。看起来Exchange将钩子放在了服务器部分(通常读取的回执是客户端生成的)。也许他们有一个协议扩展来定制它,但我不知道。非常奇怪的是,这张收据是在Exchange Server标记为已读时发送的,但只有在使用Thunderbird时才发送,而不是在同一个收件箱上与另一个IMAP客户端(如K9Mail)一起发送。什么选项留给Thunderbird用户(没有服务器的管理员权限)?谢谢,这很有帮助。因此,我需要联系运行服务器的人员来更改设置。