确保在发行列表中显示的联系人都会显示名称和电子邮件地址
-
03-10-2019 - |
题
如何确保将我添加到Outlook发行列表中的联系人都以名称和电子邮件地址显示?这些联系人可能不存在于任何其他地址簿中,只有分发列表。目前,它们仅作为电子邮件地址(在这两个列中)出现。
Alt Text http://img52.imageshack.us/img52/1804/tempgg.jpg
这大约是我们正在使用的VBA:
Do Until RS.EOF
//here's where we want to inject RS!FirstName, RS!Surname etc
objRecipients.Add RS!Email
objRecipients.Resolve
RS.MoveNext
Loop
Set objDistList = contactsFolder.Items.Add("IPM.DistList")
objDistList.DLName = "Whatever"
objDistList.AddMembers objRecipients
objDistList.Save
etc
解决方案 2
感谢Dick Kusleika的回答 Graeme的答案在这里 给了我一个想法,可能会有一种更简单的方法。
这只是为了在分配列表的条目中使用角括号。如 "Ringo Starr<rstarr@example.com>"
它的工作正常。
因此,我的原始示例看起来像这样:
objRecipients.Add RS!FullName & "<" & RS!Email & ">"
其他提示
我认为您必须为每个收件人创建一个Contactem,以便定义名称。这是一个例子:
Sub testdistlist()
Dim oRecips As Recipients
Dim ciDist As DistListItem
Dim ci As ContactItem
Dim mi As MailItem
Set mi = Application.CreateItem(olMailItem)
Set oRecips = mi.Recipients
Set ciDist = Application.CreateItem(olDistributionListItem)
'replace this with your recordset loop
Set ci = Application.CreateItem(olContactItem)
ci.FirstName = "John"
ci.LastName = "Lennon"
ci.Email1Address = "jlennon@example.com"
ci.Save
oRecips.Add ci.FullName
Set ci = Application.CreateItem(olContactItem)
ci.FirstName = "Ringo"
ci.LastName = "Starr"
ci.Email1Address = "rstarr@example.com"
ci.Save
oRecips.Add ci.FullName
'end replace
ciDist.AddMembers oRecips
ciDist.Save
ciDist.Display
mi.Close olDiscard
End Sub
不隶属于 StackOverflow