Outlook надстройка знает, когда нажата кнопка «Отправить» - PullRequest
0 голосов
/ 27 сентября 2018

Я начинаю смотреть на надстройку Outlook с помощью C # и хочу узнать, как получать уведомления в моем надстройке при нажатии Отправить электронную почту.Возможно ли это в надстройке?

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

Ответы [ 3 ]

0 голосов
/ 27 сентября 2018

Я не уверен, что вы используете технологию веб-надстроек, но вот пример о Веб-надстройка Outlook при отправке кода .Основной код, как показано ниже:

// Check if the subject should be changed. If it is already changed allow send, otherwise change it.
// <param name="subject">Subject to set.</param>
// <param name="event">MessageSend event passed from the calling function.</param>
function subjectOnSendChange(subject, event) {
    mailboxItem.subject.setAsync(
        subject,
        { asyncContext: event },
        function (asyncResult) {
            if (asyncResult.status == Office.AsyncResultStatus.Failed) {
                mailboxItem.notificationMessages.addAsync('NoSend', { type: 'errorMessage', message: 'Unable to set the subject.' });

                // Block send.
                asyncResult.asyncContext.completed({ allowEvent: false });
            }
            else {
                // Allow send.
                asyncResult.asyncContext.completed({ allowEvent: true });
            }

        });
}

Подробнее см. Как перехватить событие при отправке почты в надстройке Office (OWA, Windows Outlook 2016)

Как: изменить сообщение электронной почты Outlook перед отправкой с использованием C #

0 голосов
/ 27 сентября 2018

Для этого можно использовать событие Application.ItemSend.Отправляемый элемент будет передан в качестве аргумента вашему обработчику событий.Вы можете проверить, что вы получили объект MailItem (вы также можете иметь MeetingItem и т. Д.), Попытавшись привести объект к MailItem.

0 голосов
/ 27 сентября 2018

Вы не указали, какую технологию надстроек вы используете, но, как вы упомянули C #, я предполагаю, что вы используете Microsoft.Office.Interop.Outlook

Возможно захватитьсобытие отправки EmailItem .Вы можете получить объект EmailItem и получить доступ к его содержимому с помощью Inspector.

Пример кода:

    private void Inspectors_NewInspectorEvent(Outlook.Inspector inspector)
    {
        var currentAppointment = inspector.CurrentItem as Outlook.MailItem;
        ((Outlook.ItemEvents_10_Event)currentAppointment).Send += ThisAddIn_Send;
    }

    private void ThisAddIn_Send(ref bool Cancel)
    {
        //Handle send event
    }

Если вы создаете веб-надстройку с помощью Office.js, событие отправки в настоящее время выполняетсядоступно только в Office365 OWA.Вот ссылка

Обновление для включения комментария Дмитрия:

Вам следует использовать Application.Itemsend, затем вам нужно будет проверить, отправляется ли сообщениеОбъектом является электронная почта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...