Используйте VBA для циклической проверки получателей электронной почты и проверки массива доменов. - PullRequest
0 голосов
/ 22 февраля 2019

Когда я отправляю электронное письмо (через Outlook, поэтому я использую VBA), если какой-либо из доменов адресов получателей отсутствует в списке доменов, я хочу добавить «zsecure» в строку темы.

Вот мой текущий код:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

    Dim addrRecips As Outlook.Recipients
    Dim addrRecip As Outlook.Recipient
    Dim arrDomain As Variant
    Dim pa As Outlook.PropertyAccessor
    Dim recipDomain As String
    Dim subjSecure As String

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

    ' Set up the array
    arrDomain = Array("domain1.com", "domain2.com", "domain3.com", "domain4.net")

    For Each addrRecip In addrRecips
        Set pa = addrRecip.PropertyAccessor

        ' Get the domain from the current recipient's email address
        recipDomain = Split(pa.GetProperty(PR_SMTP_ADDRESS), "@", 2, vbTextCompare)(1)
        Debug.Print recipDomain

        ' Check if the recipient's email domain is in the array of domains
        If IsInArray(recipDomain, arrDomain) = False Then
            Debug.Print "Recipient domain, " & recipDomain & ", is in array of domains"

            ' Current recipient's email domain is not in the list, so add " zsecure" to the subject
            subjSecure = Item.Subject & " zsecure"
            Item.Subject = subjSecure

            ' If any of the recipients' domains is not in the list, we can stop here and send the email
            Exit Sub
        End If
    Next

End Sub

И когда я пытаюсь отправить электронное письмо, «IsInArray» выделяется (выбирается), и в окне сообщения об ошибке выдается «Ошибка компиляции: Sub или Function не определены».Насколько я могу судить, я правильно инициализирую, заполняю и использую массив, поэтому не вижу причины ошибки.

1 Ответ

0 голосов
/ 22 февраля 2019

Ошибка очень однозначна - функция IsInArray() не определена в вашем коде, по крайней мере, в фрагменте кода, который вы опубликовали.

...