首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActiveSync SendMail - Staus 110返回

ActiveSync SendMail - Staus 110返回
EN

Stack Overflow用户
提问于 2014-04-20 19:54:28
回答 2查看 1.6K关注 0票数 1

我试图编写一个C#程序来模拟通过SendMail命令发送电子邮件的ActiveSync设备。

每次我向exchange发送请求时,server...the响应都会发回状态代码110 -未知服务器错误

在设备日志中,我看到以下异常:

-异常启动--异常类型: Microsoft.Exchange.AirSync.Wbxml.AirSyncBlobXmlNode.set_InnerText(String异常消息:这种节点应该包含一个blob,而不是一个字符串异常级别:0异常堆栈跟踪:在Microsoft.Exchange.AirSync.Wbxml.WbxmlReader.FillXmlElement(XmlElement elem,Int32深度,布尔elemIsSecureData,布尔elemIsBlobData)在Microsoft.Exchange.AirSync.Wbxml.WbxmlReader.FillXmlElement(XmlElement elem,Int32深度,布尔elemIsSecureData,Microsoft.Exchange.AirSync.Wbxml.WbxmlReader.ReadXmlDocument() at Microsoft.Exchange.AirSync.AirSyncRequest.get_XmlDocument() at Microsoft.Exchange.AirSync.Command.get_XmlRequest() at Microsoft.Exchange.AirSync.Command.WorkerThread() --异常结束--

在WBXML编码之前,我的XML如下所示:

代码语言:javascript
复制
<?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>

我可以成功地发出提供、FolderSync、同步和设置命令,但是我不知道我在这个请求调用中做了什么错误。

如果有人能给我指明正确的方向,我会非常感激的。

提前谢谢你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-21 15:20:22

我终于找到了问题的答案。

mime标记的内容需要是CData,而不是文本。

票数 1
EN

Stack Overflow用户

发布于 2016-07-05 22:49:38

太棒了,搞定了!将近一年后,我破解了它,并在口语电子邮件中实现了SmartReply (我的产品,在这里偷偷链接)。

因此,我发现我需要发送外部标记,然后使用我的WBXML编码器的opaque方法来编码mime字符串。我只是把它作为一个字符串传递给我,它为我把它封装在CDATA中。

这是我的代码(使用Mozilla jsas库,它是javascript而不是C#,但这可能是互联网上唯一的工作代码示例,所以不要为此向我开枪!):

代码语言:javascript
复制
        var replyMime = 'From: ' + self.info.emailAddress + '\n';
        replyMime += 'MIME-Version: 1.0\n';
        replyMime += 'Content-Type: text/plain\n';
        replyMime += 'To: ' + recipient + '\n';
        replyMime += 'Subject: RE: Test\n';
        replyMime += '\n';
        replyMime += replyText;

        var cm = ASCP.ComposeMail.Tags;
        var w = new WBXML.Writer('1.3', 1, 'UTF-8');
        w.stag(cm.SmartReply)
            .tag(cm.ClientId, guidNoDashes())
            .tag(cm.SaveInSentItems)
            .stag(cm.Source)
                .tag(cm.FolderId, self.info.activeSyncInboxId)
                .tag(cm.ItemId, itemId)
            .etag()
            .stag(cm.Mime)
                .opaque(replyMime)
            .etag()
        .etag();
        logWBXML(w);

        self.conn.postCommand(w, function (aError, aResponse) {
            logWBXML(aResponse);
            if (aError) {
                self.reportActiveSyncError(aError)
                return;
            }

            var e = new WBXML.EventParser();
            e.addEventListener([cm.SmartReply, cm.Status], function (node) {
                self.handleStatus("ComposeMail:SmartReply", node, true);
            });
            e.run(aResponse);

            callback(msg);
        });
    });

在这里,小提琴包(使用EAS XML Fiddler检查器 -你必须得到它,如果你没有它!)

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<composemail:SmartReply xmlns:composemail="ComposeMail:">
  <composemail:ClientId>c5d53f22ce9885b3f293db25580e6f54</composemail:ClientId>
  <composemail:SaveInSentItems />
  <composemail:Source>
    <composemail:FolderId>9</composemail:FolderId>
    <composemail:ItemId>Qq7X_NiQVEqCD0BDywFI5QAAAAABDEKu1_zYkFRKgg9AQ8sBSOUAAHjcWVc1</composemail:ItemId>
  </composemail:Source>
  <composemail:MIME><![CDATA[From: mike@bewebnz.onmicrosoft.com
MIME-Version: 1.0
Content-Type: text/plain
To: mike@beweb.co.nz
Subject: RE: Test

Thanks!]]></composemail:MIME>
</composemail:SmartReply>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23186917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档