Автоматизация Outlook с Delphi - Очередь - PullRequest
0 голосов
/ 05 октября 2011

В настоящее время у меня есть следующий код:

  while not (sqlMailMergeData.Eof) do
  begin

  if sqlMailMergeData.FieldByName('Email').AsString <> '' then
  begin
  Inc(Count);
  {Connect to Outlook}
  MailItem := OpOutlook1.CreateMailItem;
  MailItem.MsgTo := sqlMailMergeData.FieldByName('Email').AsString;
  MailItem.Body := Form48.Memo1.Text;
  MailItem.Subject := Form48.Edit3.Text;
  MailItem.Send;
  end;

  Form34.sqlMailMergeData.next;
  end;

Однако Outlook предлагает разрешить любую электронную почту с задержкой в ​​5 секунд.Отправка после цикла перезаписывает тот же MailItem.

  MailItem.Save;

Сохраняет все элементы для черновика без запроса.Это не плохое решение и может быть дополнительной функцией, но требует большего ввода данных пользователем для перемещения элементов в исходящие.

Есть ли функция для отправки каждого почтового элемента в исходящие?или я должен рассмотреть вопрос о создании строки всех адресов электронной почты, например

MailItem.MsgTo := "example@email.com; example2@email.com"

Спасибо

Ответы [ 3 ]

3 голосов
/ 05 октября 2011

При работе с outlook вы можете рассмотреть возможность использования outlook redemption 1 , таким образом вы можете обойти запрос безопасности и отправить почту прямо из вашего кода.

1 голос
/ 07 октября 2011

Тогда единственный вариант сделать то, что Искупление делает под капотом - использовать Extended MAPI.

0 голосов
/ 30 июня 2014

Это код, который отлично работает для меня:

Outlook := CreateOleObject ('Outlook.Application');

    // Repet the code below for each mail:
    OutlookMail := Outlook.CreateItem (olMailItem);  // olMailItem = 0;
    OutlookMail.Recipients.Add ('example@email.com').Resolve;
    OutlookMail.Recipients.Add ('example2@email.com').Resolve;
    OutlookMail.Subject := Form48.Edit3.Text;
    OutlookMail.Body := Form48.Memo1.Text;
    OutlookMail.BodyFormat := olFormatHTML;
    // OutlookMail.SendUsingAccount := OutlookAccount;  // If you need to select the acount
    OutlookMail.Send;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...