Activesync:带有MIME类型的Sendmail命令

时间:2013-08-30 15:29:06

标签: ios encoding mime-types sendmail activesync

     <?xml version="1.0" encoding="utf-8"?>
     <SendMail xmlns="ComposeMail:" xmlns:airsync="AirSync">
     <ClientId>34234243</ClientId>
     <SaveInSentItems />
     <Mime>
        From:xxx@.com 
        To:yyy@.com 
        Subject:342234 MIME-Version: 1.0 
        Content-Type: text/plain; 
        charset="iso-8859-1" 
        Content-Transfer-Encoding: base64 
         X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3350 234234
        This is body  
     </Mime>
     </SendMail>

我正在使用SendEmail命令。我正在寻找将Mime内容发送到服务器的方法。我试过了:

  • 在wbxml和setBOdy HTTP请求中转换上述xml但服务器返回103错误代码。

  • 将内容转换为Base64,并附加到旧字符串,如下所示:

    <?xml version="1.0" encoding="utf-8"?>
    <SendMail xmlns="ComposeMail:" xmlns:airsync="AirSync"><ClientId>34234243</ClientId>
    <SaveInSentItems/>
    <Mime>
     text encode base 64
    </Mime>
    </SendMail>
    

并转换为wbxml,发送到服务器并收到错误代码119表示:MessageHasNoRecipient 发送的邮件不包含收件人。 有人帮忙吗?提前谢谢

2 个答案:

答案 0 :(得分:1)

我确定您的代码中的“To”关键字前面有一个空白字符。 我们把它删除吧。在将其编码为base64编码之前,您的数据必须如下所示:

   From: xxx@xxx.com
   To: xxx@xxx.com 
   Subject: Mail Subject 
   MIME-Version: 1.0 
   Content-Type: text/plain; charset=utf-8 
   Content-Transfer-Encoding: base64 

   Test body

致以最诚挚的问候,

答案 1 :(得分:0)

从MS文档中,Mime元素必须是不透明的BLOB https://msdn.microsoft.com/en-us/library/gg663453(v=exchg.80).aspx。 因此,您必须将Mime数据写为CDATA。

<Mime>
<![CDATA[From: xxx@xxx.com
To: xxx@xxx.com 
Subject: Mail Subject 
MIME-Version: 1.0 
Content-Type: text/plain; charset=utf-8 

Test body]]>
</Mime>