EWS 电子邮件正文返回为空?

Posted

技术标签:

【中文标题】EWS 电子邮件正文返回为空?【英文标题】:EWS Body of Email coming back empty? 【发布时间】:2012-04-12 17:20:02 【问题描述】:

我们正在转换处理我们发送的退回电子邮件的批处理作业。我们正在从 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 中执行此操作。

【问题讨论】:

【参考方案1】:

我们能够获得足够的信息

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,但希望我们不会再遇到任何问题。

【讨论】:

以上是关于EWS 电子邮件正文返回为空?的主要内容,如果未能解决你的问题,请参考以下文章

EWS 正文纯文本

使用 EWS API 从日记项目中提取附加的电子邮件 - 嵌入式项目 ID 为空

强制 phpmailer 发送正文为空的邮件

使用 EWS API 发送电子邮件时控制消息编码

如果地址是别名,如何使用 ews-java-api 识别收件人电子邮件?

使用Ews API去删除邮件内容中包含特定关键字的邮件