您可以使用微軟的Collaboration Data Objects,但它受Outlook安全修補程序的限制。屬於Outlook Redemption的兌換數據對象適用於安全修補程序。我已經使用RDO在Outlook中創建RTF電子郵件。
以下是使用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('[email protected]');
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](https://i.stack.imgur.com/7vf6k.jpg)
爲什麼您認爲使用MAPI與使用格式有關?似乎與我正交。 – 2011-02-05 15:14:00
您是否真的需要使用Outlook撰寫和發送電子郵件?爲什麼不通過使用Indy和IdSmtp的SMTP服務直接發送? – 2011-02-07 03:07:22
@ Paul-Jan我不是MAPI專家,我只是使用由其他人編寫的代碼來準備由Outlook發送的電子郵件。所以對我來說,MAPI是一個新世界,我可以研究它,但我正在提問以避免研究無用的東西。 – LaBracca 2011-02-07 08:03:06