COM을 통해 Outlook에 액세스하고이 응용 프로그램 내에서 생성 한 전자 메일을 보내거나 저장하거나 표시 할 수있는 작동하는 응용 프로그램이 있습니다.Outlook에서 사용자 설정을 사용하여 COM을 통해 메일 보내기
내가 원하는 것은 Outlook에서 계정의 모든 설정을 내 메일에도 적용하기 때문에 메일 유형 (텍스트, HTML 또는 리치), 사용자 지정 글꼴, 서명 등을 의미합니다. 여기
SSCCE합니다 (코드의 나머지 부분은 그냥 로깅이며, 형태는 대부분이 켜지지 컨트롤 포함) :
...
strict private
FOutlook: _Application;
...
procedure TMainForm.ShowMailDlg(aModal: Boolean);
var
mail: _MailItem;
begin
Connect();
mail := FOutlook.CreateItem(olMailItem) as _MailItem;
mail.Recipients.Add(Trim(EdTo.Text));
mail.CC := Trim(EdCc.Text);
mail.Subject := Trim(EdSubject.Text);
mail.Body := EmailText.Lines.Text;
mail.SendUsingAccount := GetAccountForEmailAddress(Trim(EdFrom.Text));
//mail.Attachments.Add('Path1', olByValue, 1, 'Caption1');
//mail.Attachments.Add('Path2', olByValue, 2, 'Caption2');
mail.Display(aModal);
end;
procedure TMainForm.Connect;
begin
FOutlook := CreateOleObject('Outlook.Application') as _Application;
end;
function TMainForm.GetAccountForEmailAddress(const aSmtp: string): _Account;
var
accounts: _Accounts;
account: _Account;
i: Integer;
begin
accounts := FOutlook.Session.Accounts;
for i := 1 to accounts.Count do begin
account := accounts.Item(i);
if LowerCase(account.SmtpAddress) = LowerCase(aSmtp) then begin
Result := account;
Exit;
end;
end;
raise Exception.Create('No Account with SMTP address ' + aSmtp + ' found!');
end;
가 어떻게이는 MailItem가에서 모든 서식-옵션을 사용하여 얻을 수 있습니다 선택한 계정?