使用Outlook和Delphi从特定帐户发送电子邮件

时间:2011-12-23 19:46:47

标签: delphi outlook

当我使用Outlook自动化从Delphi发送电子邮件时,我需要能够使用特定的发件人地址。 我现在运行代码,但它使用Outlook中的默认帐户,我需要能够指定另一个。 怎么办呢?

我已经在VBA中完成了它,所以在Delphi中也应该可以。

1 个答案:

答案 0 :(得分:0)

您的问题很可能是枚举/索引帐户集合,这在Delphi中比在VBA中习惯的稍微方便一些。

我将在下面发布一些示例代码。为了简洁和可行,我使用了OleVariants,并在本地声明了olMailItem。在生产代码中,请确保使用早期绑定。

另外,好好避开Outlook在这样自动化时抛出的所有安全警告。

const
  olMailItem = 0;

var
  application: OleVariant;
  mailItem: OleVariant;

begin
  application := getActiveOleObject( 'Outlook.Application' );

  mailItem := application.createItem( olMailItem );

  mailItem.recipients.add( 'someone@somewhere.com' );
  mailItem.subject := 'This is a subject';
  mailItem.body := 'StackOverflow... the best time to hang out at christmas.';

  // This line allows you to pick any account by name
  mailItem.sendUsingAccount := application.session.accounts.item( 'some account' );

  mailItem.send;
end;