Delphi: как написать письмо в Outlook, не используя MAPI? - PullRequest
3 голосов
/ 05 февраля 2011

В этом вопросе я только что спросил Я сказал, что готовлю сообщения Outlook, отправляя данные из моего приложения в Outlook с помощью MAPI.

Но в этом случае у меня есть одно серьезное препятствие: яне может отправить форматированный текст для тела сообщения.В моей форме есть поле rtf, я удаляю данные rtf, а затем подготавливаю почту Outlook.

Как можно сделать то же самое (создание исходящей электронной почты outlook, готовой к отправке) без использования mapi и сохранениеформатирование, как-то "RTF в HTML" ... У кого-нибудь уже есть этот код?

Ответы [ 3 ]

4 голосов
/ 05 февраля 2011

Использование оболочек компонентов Ole Automation Server, предоставляемых Delphi. Пример, который я недавно выкопал для другого вопроса, можно найти здесь: Самый простой способ составить почту Outlook 2010 из Delphi?

3 голосов
/ 05 февраля 2011

Вы можете использовать Microsoft Collaboration Data Objects , но это ограничено исправлением безопасности Outlook.Объекты данных погашения, которые являются частью Outlook Redemption , работают вокруг исправления безопасности.Я использовал RDO для создания писем в формате RTF в Outlook.

Вот пример процедуры, использующей RDO для создания письма, вставки текста в формате RTF и отображения письма, чтобы его можно было редактировать перед отправкой.

procedure TForm1.RTFemail;
var
  Session, Drafts, Mail, Recip: OleVariant;
  s : string;
begin
  Session := CreateOleObject('Redemption.RDOSession');
  Session.Logon;
  Drafts := Session.GetDefaultFolder(olFolderDrafts);
  Mail := Drafts.Items.Add;
  Recip := Mail.Recipients.Add('nobody@gmail.com');
  Recip.Type := olTo;
  Recip.Resolve;
  Mail.Subject := 'Testing Redemption';
  s := '{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil'+
    '\fcharset0 Arial;}}\viewkind4\uc1\pard\fs16 This is \ul '+
    'underlined\ulnone , \i italic\i0 , and \b bold\b0 .\par }';
  Mail.RTFBody := s;
  Mail.Save;
  Mail.Display;
end;

Он производит следующее с Outlook 2003

enter image description here

0 голосов
/ 06 февраля 2011

Веб-службы Exchange (EWS) были введены в Exchange 2007 в качестве альтернативы протоколу MAPI, это документированный протокол на основе SOAP.

Я полагаюон не будет запускать или активировать клиент Outlook, но можно создать новое сообщение электронной почты в папке «Черновик» (см. CreateItem refrence).

Документация для тела * показывает, что поддерживается простой текст и HTML.

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