0

我们正在转换处理我们发送的退回电子邮件的批处理作业。我们正在从 Redemption 切换到 EWS(刚刚从 Exchange 2003 升级到 Exchange 2010)。如您所知,退回的电子邮件有不同的形式。我已经能够处理我收到的所有测试用例电子邮件,除了以下形式的电子邮件:

您的邮件未到达部分或全部预期收件人。


      主题:你好
      发送时间:2012 年 4 月 1 日上午 8 点 16 分

无法联系到以下收件人:

      hi@foo.com 于 2012 年 4 月 1 日上午 8 点 19 分
            电子邮件系统无法传递邮件,但没有报告具体原因。检查地址,然后重试。如果仍然失败,请联系您的系统管理员。
             smtp.mydomain.com #5.0.0 smtp; 5.3.0 - 其他邮件系统问题 554-“投递错误:dd 此用户没有 foo.com 帐户 (hi@foo.com) [-5] - mail.foo.com”(投递尝试:0) >

这是outlook中显示的内容。当我使用 EWS 阅读电子邮件时,正文是空的。当我收到 EWS 的电子邮件时,我需要查看上面的信息。这些电子邮件有一个附件(这是原始电子邮件),尽管它在 Outlook 中看起来不是这样。我试图查看从 EWS 返回的几乎所有属性,但仍然能够找到上面的文本。Redemption 允许您使用 ReportText 查看此信息。我们特别寻找的是电子邮件错误传递代码。我们根据这段代码做不同的事情。

编辑:为了更清楚,我的其他测试用例上的 Body 属性不是空的。我正在加载电子邮件,例如:

            Dim emailPset = New PropertySet(BasePropertySet.FirstClassProperties)
            emailPset.RequestedBodyType = BodyType.Text
            Dim f = EmailMessage.Bind(email.Service, email.Id, emailPset)

Update1:​​经过一些研究,我似乎需要能够在 PR_NDR_STATUS_CODE 和 PR_REPORT_TEXT 字段中读取邮件的收件人表。仍在搜索是否有办法在 EWS 中执行此操作。

4

1 回答 1

0

我们能够获得足够的信息

smtp.mydomain.com #5.0.0 smtp; 5.3.0 - Other mail system problem 554-"delivery error: dd This user doesn't have a foo.com account (hi@foo.com) [-5] - mail.foo.com" (delivery attempts: 0)>

通过告诉对象加载 MIME 内容,这是我们需要的部分。

绝对不是最直接的 API 使用,但希望我们不会再遇到任何问题。

于 2012-04-13T14:11:20.360 回答