Delphi:如何在不使用 MAPI 的情况下在 Outlook 中撰写电子邮件?

发布于 2024-10-15 22:14:09 字数 381 浏览 6 评论 0原文

在这个问题中我刚刚问 我告诉过我通过使用 MAPI 将数据从我的应用程序发送到 Outlook 来准备 Outlook 消息。

但通过这种方式,我遇到了一个主要障碍:我无法发送邮件正文的格式化文本。我的表单有一个 rtf 字段,我去掉 rtf 数据然后准备 Outlook 邮件。

如何在不使用mapi并保持格式(以某种方式“rtf到html”)的情况下执行相同的操作(创建准备发送的outlook传出电子邮件)...有人已经有此代码吗?

In this question I just asked I told that I prepare Outlook messages by sending data from my app to Outlook with MAPI.

But in this way I have one major hurdle: I cannot send formatted text for the message body. My form has an rtf field, I strip away rtf data then prepare the outlook mail.

How is it possible to do the same (creating an outlook outgoing email ready to be sent) without using mapi, and keeping the formatting, somehow "rtf to html"... Does anyone already have this code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淡淡離愁欲言轉身 2024-10-22 22:14:09

使用 Delphi 提供的 Ole Automation Server 组件包装器。我最近为另一个问题挖掘的一个例子可以在这里找到: 从 Delphi 撰写 Outlook 2010 邮件的最简单方法?

Using the Ole Automation Server component wrappers provided by Delphi. An example I dug up for another question recently can be found here: Easiest way to compose Outlook 2010 mail from Delphi?

送你一个梦 2024-10-22 22:14:09

您可以使用 Microsoft 的 协作数据对象,但受到 Outlook 安全补丁的限制。 Outlook 兑换 中的兑换数据对象围绕安全补丁进行工作。我使用 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 生成以下内容

在此处输入图像描述

You can use Microsoft's Collaboration Data Objects but it is limited by the Outlook Security Patch. The Redemption Data Objects that are part of Outlook Redemption works around the Security patch. I have used RDO to create RTF emails in Outlook.

Here is a sample procedure using RDO to create an email, insert RTF formatted text and display the email so it can be edited before sending.

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;

It produces the following with Outlook 2003

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文