【发布时间】:2014-06-04 21:34:45
【问题描述】:
我正在尝试编写一个 C# 程序来模拟 ActiveSync 设备通过 SendMail 命令发送电子邮件。
每次我向交换服务器发送请求时...响应会发回状态代码 110 - 未知服务器错误
在设备日志中我看到以下异常:
--- 异常开始 --- 异常类型:System.NotImplementedException 异常消息:这种节点应该包含一个 blob,而不是一个字符串 异常级别:0 异常堆栈跟踪:在 Microsoft.Exchange.AirSync.Wbxml.AirSyncBlobXmlNode.set_InnerText(字符串值) 在 Microsoft.Exchange.AirSync.Wbxml.WbxmlReader.FillXmlElement(XmlElement 元素, Int32 深度、布尔 elemIsSecureData、布尔 elemIsBlobData) 在 Microsoft.Exchange.AirSync.Wbxml.WbxmlReader.FillXmlElement(XmlElement 元素, Int32 深度、布尔 elemIsSecureData、布尔 elemIsBlobData) 在 Microsoft.Exchange.AirSync.Wbxml.WbxmlReader.ReadXmlDocument() 在 Microsoft.Exchange.AirSync.AirSyncRequest.get_XmlDocument() 在 Microsoft.Exchange.AirSync.Command.get_XmlRequest() 在 Microsoft.Exchange.AirSync.Command.WorkerThread() --- 异常结束 ---
我的 XML 在 WBXML 编码之前是这样的:
<?xml version="1.0" encoding="utf-8"?>
<SendMail xmlns="ComposeMail:">
<ClientId>1234567890122525636247547456</ClientId>
<Mime>From: scaletester261002@abc.com
To: scaletester361001@abc.com
Subject: Mail Subject
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Test body
</Mime>
</SendMail>
我可以成功发出 Provision、FolderSync、Sync 和 Setting 命令,但我不知道我在这个请求调用中做错了什么。
如果有人能指出我正确的方向,我将不胜感激。
提前谢谢你!
【问题讨论】:
-
例外情况很明显。它期望在您的 xml 中获得一个 blob,但它正在寻找一个字符串。只有这个我不确定它引用的是哪个标签
-
我相信它在 MIME 标签中。但是,当我对 MIME 标记的内容进行 base64 编码时 - 我仍然遇到同样的错误。注意:当我将内容更改为 base64 编码时,我也会更改 content-transfer-encoding 类型。我应该以不同的方式将内容转换为 blob 吗?
标签: c# activesync