Скрипт VBA, чтобы запретить пользователю отправлять по электронной почте неправильный адрес электронной почты - PullRequest
0 голосов
/ 28 ноября 2018

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

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim recips As Outlook.Recipients
    Dim recip As Outlook.Recipient
    Dim pa As Outlook.PropertyAccessor
    Dim prompt As String
    Dim Address As String
    Dim lLen
    Dim strMyDomain
    Dim internal As Boolean
    Dim external As Boolean

    Const PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"

    ' non-exchange
    ' userAddress = Session.CurrentUser.Address
    ' use for exchange accounts
    UserAddress = Session.CurrentUser.AddressEntry.GetExchangeUser.PrimarySmtpAddress
    lLen = Len(UserAddress) - InStrRev(UserAddress, "@")
    strMyDomain = Right(UserAddress, lLen)

    Set recips = Item.Recipients

    For Each recip In recips
        Set pa = recip.PropertyAccessor

        Address = LCase(pa.GetProperty(PR_SMTP_ADDRESS))
        lLen = Len(Address) - InStrRev(Address, "@")
        str1 = Right(Address, lLen)

        If str1 = strMyDomain Then internal = True
        If str1 <> strMyDomain Then external = True
    Next



    If external And Not internal Then
        prompt = "This email is being sent to External addresses. HAVE YOU CHECKED THE RECIPIENT ADDRESS IS CORRECT? Do you still wish to send the email?"

        If MsgBox(prompt, vbYesNo + vbExclamation + vbMsgBoxSetForeground, "Check Address") = vbNo Then
            Cancel = True
        End If

    ElseIf internal And external Then
        prompt = "This email is being sent to Internal and External addresses. HAVE YOU CHECKED THE RECIPIENT ADDRESS IS CORRECT? Do you still wish to send the email?"

        If MsgBox(prompt, vbYesNo + vbExclamation + vbMsgBoxSetForeground, "Check Address") = vbNo Then
            Cancel = True
        End If

    End If
End Sub

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

Флажки, которые нужно добавить:

  • Было ли зашифровано письмо (только при отправке вложений)
  • Вы проверили, правильно ли получатель (только для внешних писем)
  • Проверяли ли вы правильность вложений (только если вложение было прикреплено)

Пример POPUP MESSAGE

...