【发布时间】:2020-01-08 22:50:25
【问题描述】:
我能够通过 activesync 获得对 Provision、FolderSync、Sync、Search、ItemOperations 等的响应,但我无法发送邮件。
我使用的是 14.1 协议版本。
我在某处读到 SendMail:Mime 必须是 CData 格式。如果 Mime 数据是文本内容,服务器会抛出错误 102,但使用 CData 会抛出 119。以下是编码前的 xml:
下面没有 CData。服务器抛出 102:无效的WBXML。
<composemail:SendMail xmlns:composemail="ComposeMail">
<composemail:ClientId>1294231504</composemail:ClientId>
<composemail:SaveInSentItems/>
<composemail:Mime>From: test@mail.com
To: test@mail.com
Subject: 123
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
This is the body text
</composemail:Mime>
</composemail:SendMail>
下面是cdata。服务器抛出 119:MessageHasNoRecipient。
<composemail:SendMail xmlns:composemail="ComposeMail">
<composemail:ClientId>1240110395</composemail:ClientId>
<composemail:SaveInSentItems/>
<composemail:Mime>
<![CDATA[From: test@mail.com
To: test@mail.com
Subject: 123
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
This is the body text]]>
</composemail:Mime>
</composemail:SendMail>
我需要对 mime 消息进行 base64 处理还是 xml 中缺少参数?
如果有帮助,消息字符串如下:
String test = "From: test@mail.com"
+"\nTo: test@mail.com"
+"\nSubject: 123"
+"\nMIME-Version: 1.0"
+"\nContent-Type: text/plain; charset=utf-8"
+"\n\nThis is the body text";
Node mimeNode = itemOperationsXML.createElementNS(Namespaces.composeMailNamespace,
Xmlns.composeMailXmlns + ":Mime");
mimeNode.appendChild(itemOperationsXML.createCDATASection(test));
rootNode.appenChild(mimeNode );
【问题讨论】:
-
任何熟悉 Activesync 协议的人可以提供帮助?
标签: java android activesync