【问题标题】:How to handle Outlook Send error when there is a duplicate contact?联系人重复时如何处理 Outlook 发送错误?
【发布时间】:2021-11-18 08:15:47
【问题描述】:

我得到了错误

Outlook 无法识别一个或多个名称。

我认为这是由于联系人多次出现。

例如,当我导入我的联系人列表时,我使用代理号码来查找代理。
当我输入 11005 并检查姓名时,它将有两个或多个同一个人的条目。

有什么方法可以处理这个错误吗?

.Recipient.Add( oldProducerCode)
.Recipient.ResolveAll
.CC = ""
.BCC = ""
.Subject = "Renewal (URGENT)"
.HTMLBody = strHTML
.SentOnBehalfOfName = "Client_Service@automated.ca"
.Send

【问题讨论】:

  • 哪一行出现错误?另外,如果同一个人有 2 个或更多条目,您怎么知道该选择哪一个?如果您提供更多代码也会很有帮助,因为我们不知道您是如何到达这个阶段的

标签: excel vba outlook


【解决方案1】:

Ans:如果您使用的是 Outlook 活动,那么 Outlook 应用程序应该安装在该机器上,并且当时它应该在线

谢谢

【讨论】:

  • 我同意应安装 Outlook,但如果 OP 收到收件人错误,则表明已安装 Outlook,否则 OP 在尝试初始化 Outlook 应用程序时会出错。此外,Outlook 不必打开。你可以检查outlook是否打开,如果没有,你可以通过代码打开它
【解决方案2】:

看来 Outlook 无法识别设置为 MailItem.SentOnBehalfOfName 属性的名称。

你可以尝试调用NameSpace.CreateRecipient(返回Recipient对象)。然后调用Recipient.Resolve,如果名称无法解析则返回false。

SentOnBehalfOfName 属性仅在 Exchange 配置文件/帐户的情况下才有意义。此外,您需要具有代表他人发送所需的权限。类似的讨论请参见Issue with SentOnBehalfOfName

如果您在配置文件中配置了多个帐户,则可以使用 SendUsingAccount 属性,该属性允许使用代表要发送 MailItem 的帐户的帐户对象。

     Sub SendUsingAccount() 
      Dim oAccount As Outlook.account 
      For Each oAccount In Application.Session.Accounts 
       If oAccount.AccountType = olPop3 Then 
        Dim oMail As Outlook.MailItem 
        Set oMail = Application.CreateItem(olMailItem) 
        oMail.Subject = "Sent using POP3 Account" 
        oMail.Recipients.Add ("someone@example.com") 
        oMail.Recipients.ResolveAll 
        oMail.SendUsingAccount = oAccount 
        oMail.Send 
       End If 
      Next 
     End Sub 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-04
    • 2011-10-10
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    相关资源
    最近更新 更多