【问题标题】:Detecting an invalid in-firm email address from outlook recipients检测来自 Outlook 收件人的无效公司电子邮件地址
【发布时间】:2018-12-13 19:34:25
【问题描述】:

我无法使用以下代码检测 Outlook 收件人的内部(EX 类型)无效电子邮件地址:

无效的电子邮件地址有一个印刷错误,例如 tes@mail.com 对应于 test@mail.com。

如何检测具有无效电子邮件地址的固定收件人?

Dim Email as Outlook.Mailitem
Dim Recipients As Outlook.Recipients
Set Recipients = Email.Recipients
    Recipients.Resolveall

If Not Recipients.ResolveAll Then
    For i = Recipients.Count To 1 Step -1
        If Not Recipients(i).Resolved Then
            MsgBox Recipients(i).Name
        End If
    Next i
End if

【问题讨论】:

    标签: vba outlook detect


    【解决方案1】:

    您是否检查过以下代码:

        Public Function ResolveDisplayNameToSMTP(sFromName, OLApp As Object) As String
    
        Dim oRecip As Object  'Outlook.Recipient
    
        Set oRecip = OLApp.Session.CreateRecipient(sFromName)
        oRecip.Resolve
        oRecipName = oRecip.Name
    
        If oRecip.Resolved And InStr(oRecipName, "@") = 0 Then
            ResolveDisplayNameToSMTP = "Valid"
        Else
            ResolveDisplayNameToSMTP = "Not Valid"
        End If
    
    End Function
    

    更多信息请看:VBA CODE to Verify Email Address Found in Outlook Global Address List

    【讨论】:

    • 检查“@”不是一个好主意 - oRecip.AddressEntry.Type == "EX" 是一个更好的检查。
    • 似乎如果在确定的收件人的电子邮件地址中发现语法错误,说在将其键入邮件项目时,Outlook 不会将收件人视为 EX 类型。这是我遇到麻烦的真正原因,也是手头问题的要点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 2020-10-02
    • 2020-01-21
    • 2019-01-09
    • 2022-06-16
    • 2016-02-19
    相关资源
    最近更新 更多