Как пометить электронную почту для получателей с помощью API Outlook в MATLAB? - PullRequest
2 голосов
/ 17 мая 2019

Я хочу отправить электронное письмо через Outlook API в MATLAB, а также хочу создать задачу в Outlook получателя.

Я попытался взглянуть на документацию по API Outlook, но все, что я смог найти, это ссылка на FlagStatus, который не доступен для olMail.

% Connect to Outlook
outlook = actxserver( 'outlook.Application' );

% Create email
email = outlook.CreateItem( 'olMail' );

% Add email properties
email.To = address;
email.Subject = subject;
email.Importance = 'olImportanceHigh';
email.BodyFormat = 'olFormatHTML';
email.HTMLBody = body;

% Add task properties
email.TaskSubject = taskName;
email.TaskStartDate = datestr( today, 'dd/mm/yyyy' );
email.TaskDueDate = datestr( today + 12, 'dd/mm/yyyy' );

% Set reminder
email.ReminderSet = true;
email.ReminderTime = datestr( today + 7 + 9/24, 'dd/mm/yyyy hh:MM' );

% Send email
email.Send;

Ожидаемое поведение будет таким же, как при выборе опции, указанной ниже:

enter image description here

1 Ответ

1 голос
/ 20 мая 2019

Я считаю, что это связано со свойством FlagRequest.Чтобы увидеть, что он делает, запустите email.Display() после выполнения вашего кода - вы должны заметить, что в Outlook открыто «новое сообщение».Это то, что вы увидите изначально:

enter image description here

Затем, если вы выполните:

% Flag for recipient
email.FlagRequest = "<NAME OF FLAG HERE>";

Вы получите:

enter image description here

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

  1. Если вы откроете меню флагов после выполнения команды, это будет означать, что будет создан флаг local вместо remote один.Это похоже на ошибку Outlook.
  2. Удаленный флаг время / дата - это то, что вы указали в ReminderTime.Я думаю, что было бы лучше установить FlagRequest перед ReminderSet и ReminderTime, чтобы оно правильно отображалось в графическом интерфейсе (при использовании email.Display).
...