Наша компания помещает уведомление на любое входящее электронное письмо из внешнего источника, чтобы предупредить нас об осторожности при открытии вложений или переходе по ссылкам.Гарантированный?Да.Раздражает?Да.Выглядит несколько непрофессионально?Возможно.
Я пробовал несколько разных итераций VBA, чтобы спросить, хочу ли я удалить сообщение при отправке.Мой текущий код приведен ниже, и он выведет окно сообщения, поэтому я знаю, что мое форматирование правильное, и он находит текст, но фактически не удаляет его.
Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim strBody As String
If InStr(Item.Body, "NOTICE: This email is from an external sender. Please exercise caution when opening attachments or clicking links.") > 0 Then
If MsgBox("Do you want to remove the Notice?", vbYesNo) = vbYes Then
strBody = Replace(Item.Body, "NOTICE: This email is from an external sender. Please exercise caution when opening attachments or clicking links.", "", vbTextCompare)
Else
strBody = Item.Body
End If
End If
Item.Save
End Sub
Я хотел бы дляпоявится окно сообщения и спросит, нужно ли удалить уведомление, а затем удалите его, если я нажму «да», но оставлю все остальное в письме.Одно предостережение в том, что это уведомление может быть несколько раз, если это длинная цепочка с несколькими ответами.Если я единственный в цепочке, то мой макрос будет удалять любые из предыдущих ответов, но если другие находятся в цепочке и не удаляют свои, то я бы хотел, чтобы мой макрос сделал это, если я отвечу (я понимаю,Я ничего не могу поделать с другими).
Должен ли код быть другим, если это электронное письмо в формате HTML, а не простой текст?
РЕДАКТИРОВАТЬ: Вот мой текущий код.Я получил его, чтобы удалить уведомление, и теперь он не будет удалять новое письмо, но отправка ответа очень медленная.
Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim strBody As String
If InStr(Item.HTMLBody, "LHMSE NOTICE: This email is from an external sender. Please exercise caution when opening attachments or clicking links.") > 0 Then
If MsgBox("Do you want to remove the LHMSE Notice?", vbYesNo) = vbYes Then
strBody = Replace(Item.HTMLBody, "LHMSE NOTICE: This email is from an external sender. Please exercise caution when opening attachments or clicking links.", "", vbTextCompare)
Item.HTMLBody = strBody
Else
strBody = Item.HTMLBody
End If
End If
Item.Save
End Sub