c# - 如何在 EWS/C# 中使用抑制自动回复发送电子邮件?
问题描述
我一直试图在 MSDN 文档和各种其他资源中找到这个问题的答案,但我找不到有用的东西。
这是我正在使用的一些 C# 代码:
private ExtendedPropertyDefinition SurpressAutoResponse = new ExtendedPropertyDefinition(
DefaultExtendedPropertySet.InternetHeaders,
"X-Auto-Response-Suppress",
MapiPropertyType.String); // Also tried with StringArray and Integer
private ExtendedPropertyDefinition OtherID = new ExtendedPropertyDefinition(
DefaultExtendedPropertySet.InternetHeaders,
"X-Custom-ID-Property-Example",
MapiPropertyType.String);
{ 其他一些不重要的代码}
var mm = new EmailMessage(Global.Exchange);
mm.ToRecipients.Add("me@me.com"); // example address, of course
mm.Subject = Subject.Replace('\r', ' ').Replace('\n', ' ');
mm.SetExtendedProperty(SurpressAutoResponse, "OOF, NDR"); // Also tried {"OOF", "NDR"} and -1
mm.SetExtendedProperty(OtherId, "12345-1");
mm.Body = "Hello World";
mm.Send();
当我检查传入电子邮件的标题时,我看到我的“OtherId”设置正确,但未设置 X-Auto-Response-Suppress。任何想法我应该如何进行交流以抑制这些不在办公室和交付失败的报告?
笔记:
- 我的目标是 Exchange 2010_SP2 服务器,它应该支持这个
参考:
- https://docs.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxcmail/ced68690-498a-4567-9d14-5c01f974d8b1
- https://docs.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/dd633654(v=exchg.80)
更新
我决定尝试测试电子邮件的行为并在我的电子邮件帐户上设置自动回复/OOF。即使电子邮件的属性不包含 X-Auto-Response-Suppress 标头,我注意到它确实阻止了回复。我的假设是在 Exchange 服务器上读取标头,它也可能处理自动响应而不是客户端。由于客户端不会对标头本身进行操作,因此 Exchange 通过在传输之前将其从原始电子邮件中删除来保存一些数据。有谁知道请确认这是正确的吗?
解决方案
我之前在使用该标头时遇到过问题,因为 MSDN 对它的实际作用非常模糊。而且它主要仅用于交换服务器和 OOF 目的。相反,还有其他更好的标题。这是一篇文章,解释了为什么我认为使用其他标题会很好地为您服务。https://www.jitbit.com/maxblog/18-detecting-outlook-autoreplyout-of-office-emails-and-x-auto-response-suppress-header/
如果您只想捕获 OOF,则可以将标题更改为:
X-Auto-Response-Suppress:OOF
但我不认为这是一个很好的例子。这是关于为什么这并不总是最好使用的标题的另一个线程:检测 Outlook 自动回复/外出电子邮件
推荐阅读
- c# - 如何将 .xaml 文件中的标签与 .cs 文件中的字符串对象绑定
- python - Django - For 循环只为一项提供结果
- android - 如何使任何图像内的字段可编辑?
- javascript - 激活 document.body.contentEditable 时如何记录更改
- c++ - 比较类和对象的向量时如何定义 == 运算符?
- c# - 如何拆分保留换行符的文本文件
- perl - 为什么Perl编程的“7.2.39 IPC::Open2”中显示的程序实际上结束了?
- docker - 无法启动 Hyper-V 虚拟机:“DockerDesktopVM”无法在 Windows 10 机器中启动
- apache-spark - Spark 2.4中的pivot-unpivot后列的值没有正确对齐
- python - 如何通过在熊猫中引用其日期来提取