Отправить сообщение с пользовательскими свойствами с выкупом - PullRequest
2 голосов
/ 20 октября 2010

Я использую Redemption.dll для установки пользовательских сообщений в мои сообщения с помощью set_Filed () и get_field () в C #. Все работает отлично, пока я не отправлю свои сообщения. Из Outlook я использую RDOMail.Send (), и это отправило сообщение в папку «Черновики». Затем я прочитал в FAQ по выкупу, что я должен использовать метод IMessage :: Submit () (который я не смог найти нигде в dll для .NET), а затем использовать метод DeliverNow (), который я использовал, но к своему удивлению когда я получаю свои сообщения, я теряю установленные мной свойства. Это действительно очень важно для нашего проекта, так как если Outlook не может отправлять письма, это ничего не стоит.

Вот часть моего кода.

 private void adxOutlookEvents_ItemSend(object sender, AddinExpress.MSO.ADXOlItemSendEventArgs e)
 {
     try
     {
         RDOSessionClass _RDOSession= MessagesActions.GetRDOSession();
         Outlook.MailItem _MailItem= e.Item as Outlook.MailItem;
         RDOMail _RdoMail = MessagesActions.GetRDOMail(_RDOSession, _MailItem);
         _RdoMail.Send();                // Send using Redeption
         e.Cancel = true;                // Only send using Redeption

         if (_RdoMail != null && Marshal.IsComObject(_RdoMail))
             Marshal.ReleaseComObject(_RdoMail);

         Redemption.MAPIUtils _MAPIUtils = new MAPIUtils();
         _MAPIUtils.DeliverNow(0, 0);
         if (_MAPIUtils != null && Marshal.IsComObject(_MAPIUtils))
             Marshal.ReleaseComObject(_MAPIUtils);

         CurrentInspector.Close(Outlook.OlInspectorClose.olDiscard);
     }
     catch
     {
     }
}     

Спасибо.

1 Ответ

0 голосов
/ 26 мая 2013

Когда сообщение отправляется через SMTP (в отличие от двух почтовых ящиков Exchange в одном домене), оно преобразуется в MIME, и все специфические свойства MAPI теряются.

Вы можете заставить Outlook отправлять сообщение в формате TNEF (печально известный winmail.dat), если вы используете специальное именованное свойство с именем UseTnef:

RDOMail.Fields ["http://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/8582000B"] = true;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...