Outlook 2013 имеет встроенную функцию, поэтому нет необходимости добавлять какие-либо таможенные скрипты или надстройки.
Даже если вы запрашиваете Outlook 2010 специально, следующий скрипт должен работать и для 2010, и для предыдущих версий:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
If InStr(1, Item.Body, "attach", vbTextCompare) > 0 Then
If Item.Attachments.Count = 0 Then
answer = MsgBox("There's no attachment, send anyway?", vbYesNo)
If answer = vbNo Then Cancel = True
End If
End If
End Sub
Это даст вам предупреждение, похожее на следующее:
Нажатие yes
отправит письмо в любом случае, а нажатие no
остановит отправку письма, что даст вам возможность прикрепить вложение.
Вот обновленная версия. Поскольку ответы содержат предыдущие сообщения, и не существует быстрого и простого способа определить, где находится тело ответа, и цитируемое сообщение начинаются / заканчиваются, это не вызовет у вас ответов:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
If InStr(1, Item.Subject, "RE:", vbTextCompare) = 0 Then
If InStr(1, Item.Body, "attach", vbTextCompare) > 0 Then
If Item.Attachments.Count = 0 Then
answer = MsgBox("There's no attachment, send anyway?", vbYesNo)
If answer = vbNo Then Cancel = True
End If
End If
End If
End Sub
Следует также отметить, что в обоих случаях (мой измененный и оригинальный) любое оригинальное письмо со словом «присоединить» будет запрашивать у вас, хотите ли вы прикрепить файл.