当我使用Outlook自动化从Delphi发送电子邮件时,我需要能够使用特定的发件人地址。 我现在运行代码,但它使用Outlook中的默认帐户,我需要能够指定另一个。 怎么办呢?
我已经在VBA中完成了它,所以在Delphi中也应该可以。
答案 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;