我正在尝试使用Outlook从特定帐户发送电子邮件。
用户在Outlook应用程序中有两个或多个帐户,自动化需要使用特定帐户发送电子邮件。
为此,我按照OLE documentation的要求使用了mailItem.SendUsingAccount属性。
示例如下。
问题是显示生成的电子邮件时-“发件人”字段使用CurrentUser帐户,而不是SendUsingAccount属性设置的帐户。
我做错了什么还是错过了什么?
procedure TOutlookOLE.AssignSenderFromAccounts(const _MailFromEmail: string);
var
i: integer;
NewSender: OleVariant;
sendermail: string;
report: string;
begin
if Connected then
begin
i := OutlookAppObject.Session.Accounts.Count;
// Cycle through all accounts to identify correct one
for I := 1 to OutlookAppObject.Session.Accounts.Count do
begin
NewSender := OutlookAppObject.Session.Accounts.Item(i);
sendermail := VarToStr(NewSender.SmtpAddress);
// Match accounts based on email address
if NOT VarIsNull(NewSender) AND SameText(sendermail, _MailFromEmail) then
begin
// Match FOUND and set to mail Item ...
// ... but when Displayed THIS IS NOT THE CASE
if MailCreated then
OutlookMailItem.SendUsingAccount := NewSender
else raise Exception.Create('Outlook OLE Exception: Mail object not created.');
break;
end;
end;
end
else raise Exception.Create('Outlook OLE Exception: Outlook not connected.');
end;
1条答案
按热度按时间wqsoz72f1#
这是已知的Outlook问题-尝试同时更新
PR_SENT_REPRESENTING_EMAIL_ADDRESS
MAPI属性: