ActiveSync Fetch Command. Как получить MessageID - PullRequest
1 голос
/ 07 декабря 2011

Используйте ItemOperations для получения сообщения:

Как мне получить заголовки, в частности, MessageID для электронной почты?

Я запутался в примере на MSDN, который четко показывает заголовок письма. http://msdn.microsoft.com/en-us/library/ee220018%28v=EXCHG.80%29.aspx

Я пропустил дополнительную команду / поле / флаг?

Спасибо, Пат

Окружающая среда Протокол Exchange 2003: 12.1 ActiveSync

IN:

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<ItemOperations xmlns:airsync=\"AirSync:\" xmlns:airsyncbase=\"AirSyncBase:\" xmlns=\"ItemOperations:\">
  <Fetch>
    <Store>Mailbox</Store>
    <airsync:CollectionId>6</airsync:CollectionId>
    <airsync:ServerId>6:1</airsync:ServerId>
    <Options>
      <airsync:MIMESupport>1</airsync:MIMESupport>
      <airsyncbase:BodyPreference>            
        <airsyncbase:Type>2</airsyncbase:Type>
        <airsyncbase:TruncationSize>5120</airsyncbase:TruncationSize>
        <airsyncbase:AllOrNone>0</airsyncbase:AllOrNone>
      </airsyncbase:BodyPreference>
    </Options>
  </Fetch>
</ItemOperations>

ВЫВОД:

Ответ XML:

<?xml version="1.0" encoding="utf-8"?>
<itemoperations:ItemOperations xmlns:itemoperations="ItemOperations:">
  <itemoperations:Status>1</itemoperations:Status>
  <itemoperations:Response>
    <itemoperations:Fetch>
      <itemoperations:Status>1</itemoperations:Status>
      <airsync:CollectionId xmlns:airsync="AirSync:">6</airsync:CollectionId>
      <airsync:ServerId xmlns:airsync="AirSync:">6:1</airsync:ServerId>
      <airsync:Class xmlns:airsync="AirSync:">Email</airsync:Class>
      <itemoperations:Properties>
        <email:To xmlns:email="Email:">"pat2 pm. mol" &lt;pat2.test@dhmars.loc&g
t;</email:To>
        <email:From xmlns:email="Email:">"pat2 pm. mol" &lt;pat2.test@dhmars.loc
&gt;</email:From>
        <email:Subject xmlns:email="Email:">TESTMAIL</email:Subject>
        <email:DateReceived xmlns:email="Email:">2011-12-06T15:22:24.613Z</email
:DateReceived>
        <email:DisplayTo xmlns:email="Email:">pat2 pm. mol</email:DisplayTo>
        <email:ThreadTopic xmlns:email="Email:">TESTMAIL</email:ThreadTopic>
        <email:Importance xmlns:email="Email:">1</email:Importance>
        <email:Read xmlns:email="Email:">1</email:Read>
        <airsyncbase:Body xmlns:airsyncbase="AirSyncBase:">
          <airsyncbase:Type>2</airsyncbase:Type>
          <airsyncbase:EstimatedDataSize>1627</airsyncbase:EstimatedDataSize>
          <airsyncbase:Data>&lt;html&gt;
&lt;head&gt;
&lt;style&gt;
&lt;!--
@font-face
        {font-family:"Cambria Math"}
@font-face
        {font-family:Calibri}
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif"}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline}
span.EmailStyle17
        {font-family:"Calibri","sans-serif";
        color:windowtext}
.MsoChpDefault
        {font-family:"Calibri","sans-serif"}
@page WordSection1
        {margin:72.0pt 72.0pt 72.0pt 72.0pt}
div.WordSection1
        {}
--&gt;
&lt;/style&gt;
&lt;/head&gt;
&lt;body lang="EN-US" link="blue" vlink="purple"&gt;
&lt;div class="WordSection1"&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</airsyncbase:Data>
        </airsyncbase:Body>
        <email:MessageClass xmlns:email="Email:">IPM.Note</email:MessageClass>
        <email:InternetCPID xmlns:email="Email:">20127</email:InternetCPID>
        <email:Flag xmlns:email="Email:" />
        <email:ContentClass xmlns:email="Email:">urn:content-classes:message</em
ail:ContentClass>
        <airsyncbase:NativeBodyType xmlns:airsyncbase="AirSyncBase:">2</airsyncb
ase:NativeBodyType>
      </itemoperations:Properties>
    </itemoperations:Fetch>
  </itemoperations:Response>
</itemoperations:ItemOperations>

Ответы [ 2 ]

1 голос
/ 19 июня 2013

Вы установили airsyncbase: Type = 2. Это дает вам HTML-ответ.

Вам необходимо установить Type = 4, если вы хотите получить полный MIME-ответ.Это будет иметь все необходимые заголовки.

См. 2.2.2.22 Тип [MS-ASAIRS]: Exchange ActiveSync: Протокол пространства имен AirSyncBase на http://msdn.microsoft.com/en-us/library/hh475675(v=exchg.80).aspx.

0 голосов
/ 16 декабря 2011

Кажется нормально, но, прежде всего, вы должны проверить, поддерживает ли запрос ASAcceptMultiPart: http://msdn.microsoft.com/en-us/library/ee159875%28v=EXCHG.80%29.aspx

...