В настоящее время я работаю над надстройкой, которая будет использоваться внутри компании.
Что нужно сделать AddIn, это сохранить вложения из электронного письма с некоторой дополнительной информацией, создать новое электронное письмо с этими вложениями и отправить его. указать c адрес. То, что я получил до сих пор, это добавление в C#
, созданное с помощью VS2019. Это хорошо работает.
Надстройка состоит из ленты, U C (WinForms, только для хостинга), U C (WPF)
Однако, когда я выполняю действие по электронной почте, я бы Пользователь должен знать, что это письмо было обработано, и отображать сообщение по электронной почте, например, «Это письмо было обработано». Это будет отображаться в том же месте, что и вы ответите на это письмо. Я видел, как это было достигнуто в этом руководстве по MSDN , но оно использует javascript и не способно сохранять вложения (что является обязательным требованием для этого дополнения). Что объясняется в этой статье MSDN . Я пытался найти что-то подобное в C# VSTO, но, кажется, не могу найти что-то даже близко к этому.
Вопрос:
Могу ли я сделать это в C# или мне нужно использовать web VSTO (который использует службу, написанную на C# для получения вложений), затем выясните, как получить эти файлы и прикрепить их к новому письму.
ОБНОВЛЕНИЕ:
Вот как я сейчас отправляю электронное письмо:
var newEmail = Application.CreateItem(OlItemType.olMailItem) as MailItem;
newEmail.Recipients.Add(viewModel.RecipientOverride);
foreach (var att in viewModel.Attachments.Where(at => at.Checked))
{
var tempFile = System.IO.Path.GetTempPath();
att.OriginalAttachment.SaveAsFile(tempFile + att.FileName);
newEmail.Attachments.Add(tempFile + att.FileName);
att.Progress = 1;
createdFiles.Add(tempFile + att.FileName);
}
newEmail.Subject = $"{viewModel.Property}";
newEmail.Body = viewModel.Notes;
newEmail.Send();
А вот пример кода того, как javascript делает это:
/**
* Shows a notification when the add-in command is executed.
* @param event {Office.AddinCommands.Event}
*/
function action(event) {
const message = {
type: Office.MailboxEnums.ItemNotificationMessageType.InformationalMessage,
message: "Performed action.",
icon: "Icon.80x80",
persistent: true
};
// Show a notification message
Office.context.mailbox.item.notificationMessages.replaceAsync("action", message);
// Be sure to indicate when the add-in command function is complete
event.completed();
}
Вот визуализация того, что я пытаюсь воспроизвести: