Я разрабатываю надстройку VSTO с использованием C# для управления подписями электронной почты в Outlook. Вот функциональность, которую я стремлюсь достичь:
Новое электронное письмо: добавьте собственную подпись.
Ответить/Ответить всем: отслеживайте электронное письмо и добавляйте подпись только при ответе или ответе. Нажата кнопка -all.
Что я пробовал
- Используя событие SelectionChange
Я пытался обнаружить действия «ответить/ответить всем» с помощью подключаясь к Событие SelectionChange:
Код: Выделить всё
currentExplorer.SelectionChange += CurrentExplorer_SelectionChange;
private void CurrentExplorer_SelectionChange()
{
try
{
var inlineResponse = currentExplorer.ActiveInlineResponse;
if (inlineResponse != null && inlineResponse is Outlook.MailItem mailItem)
{
string replyType = DetermineReplyType(inlineResponse);
if (!string.IsNullOrEmpty(replyType))
{
if (!string.IsNullOrEmpty(inlineResponse.Body))
{
string body = inlineResponse.Body;
AppendSignatureFromReply(body);
}
}
}
}
catch (System.Exception ex)
{
System.Diagnostics.Debug.WriteLine($"Error: {ex.Message}");
}
}
- Использование события NewInspector
Затем я попробовал отслеживать ответы/ответы всем с помощью события NewInspector:
Код: Выделить всё
inspectors.NewInspector += Inspectors_NewInspector;
private void Inspectors_NewInspector(Outlook.Inspector inspector)
{
if (inspector.CurrentItem is Outlook.MailItem mailItem)
{
mailItem.PropertyChange += MailItem_PropertyChange;
if (inspector.EditorType == Outlook.OlEditorType.olEditorWord)
{
if (mailItem.ReplyRecipients != null && mailItem.Recipients.Count > 0)
{
MessageBox.Show("Triggered");
string url = AppendSignatureFromReply(mailItem.Body);
if (!string.IsNullOrEmpty(url))
{
var signature = Input.DownloadBlobContentByURL(url);
signature = UpdateSignatureInformation(signature);
//mailItem.HTMLBody = $"
{signature}" + mailItem.HTMLBody;
}
}
}
}
}
Запрос о помощи
Как я могу надежно отслеживать действие «Ответить/ответить всем» событий и добавлять подпись только после того, как пользователь нажмет кнопку «Ответить/ответить всем»?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ched-reply
Мобильная версия