Создание письма с вложением в Outlook и его отображение

Я хочу создать письмо с вложением в Outlook и отобразить его перед отправкой, но я думаю, что пробовал почти все образцы, которые нашел в сети, но безуспешно. Я мог бы использовать Indy, но я бы очень хотел использовать Outlook, чтобы быть уверенным, что почта подходит, потому что она предназначена для бизнеса.

Любой ввод для функции, которая принимает адрес, тему, сообщение и вложение в качестве параметров, а затем отображает сообщение в Outlook перед его отправкой.


person OZ8HP    schedule 11.12.2011    source источник


Ответы (1)


См. метод MailItem.Display.

uses
  comobj;

..

procedure DisplayMail(Address, Subject, Body: string; Attachment: TFileName);
var
  Outlook: OleVariant;
  Mail: Variant;
const
  olMailItem = $00000000;
begin
  try
    Outlook := GetActiveOleObject('Outlook.Application');
  except
    Outlook := CreateOleObject('Outlook.Application');
  end;
  Mail := Outlook.CreateItem(olMailItem);
  Mail.To := Address;
  Mail.Subject := Subject;
  Mail.Body := Body;
  if Attachment <> '' then
    Mail.Attachments.Add(Attachment);
  Mail.Display;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DisplayMail('mailaddress', 'subject', 'message', 'attachmentfile');
end;
person Sertac Akyuz    schedule 11.12.2011
comment
Я еще не уверен, что я делал неправильно, потому что это почти тот же код, который я использовал, но безуспешно. С другой стороны, ваш код работает. Мне интересно, связано ли это с тем, что я использую Outlook_TLB, но я не понимаю, что это должно делать. Знаете ли вы, можно ли добавить в код уведомление о прочтении запроса и уведомление о доставке? - person OZ8HP; 11.12.2011
comment
Для получения запроса на чтение проверьте свойство ReadReceiptRequested и используйте его как Mail.ReadReceiptRequested := True; - person TLama; 11.12.2011
comment
.. и OriginatorDeliveryReportRequested собственность. - person Sertac Akyuz; 11.12.2011
comment
@OZ8HP - Пожалуйста. Вы можете принять ответ, если он ответил на ваш вопрос. - person Sertac Akyuz; 12.12.2011
comment
@Sertac Akyuz Я все еще борюсь с этой системой :-) Я привык к сайту здесь, в Дании, который немного проще/легче в использовании. Но я думаю, что узнал, как принять ответ. Сейчас я работаю над расширением отправки почты для использования определенной учетной записи. Это довольно просто в VBA. - person OZ8HP; 22.12.2011