提取发件人的名字

问题描述 投票:0回答:2

收到电子邮件后,我想将发件人的名字提取到电子邮件正文中,以避免名称拼写错误。

我使用Name和Surname管理,但我无法提取和显示First Name。

这是代码:

Sub Dodanie_imienia()
On Error GoTo brak_aktywnego
Dim objItem As MailItem: Set objItem = Application.ActiveExplorer.Selection.Item(1)
On Error GoTo 0
Dim objInsp As Outlook.Inspector: Set objInsp = objItem.GetInspector
Dim objDoc As Object: Set objDoc = objInsp.WordEditor 'Word.Document
Dim objWord As Object: Set objWord = objDoc.Application 'Word.Application
Dim objSel As Object: Set objSel = objWord.Selection 'Word.Selection
Dim objItem2 As Object: Set objItem2 = Application.ActiveExplorer.Selection.Item(1)
Dim tekst$: tekst = "Hi " & objItem2.SenderName & "," & vbNewLine & vbNewLine

 objSel.TypeText tekst

Exit Sub
brak_aktywnego:
 If Err.Number = 91 Then _
 MsgBox "Utwórz wiadomość do edycji.", vbExclamation, "LB" Else _
 MsgBox Err.Number & " " & Err.Description, vbExclamation, "LB"
End Sub
vba outlook outlook-vba
2个回答
1
投票

你为什么假设有一个名字和姓氏?你得到的只是一个显示名称 - 它可以只是电子邮件地址,也可以是发件人想要显示的任何内容。您当然可以自由地解析显示名称,假设它将采用“first last”或“last,first”的格式。或者“第一中间最后”。或任何其他格式。

如果是Exchange发件人,您当然可以从AddressEntry检索MailItem.Sender对象并检查AddressEntry.GetExchangeUser是否为空。如果你有一个有效的对象,你可以使用ExchangeUser.FirstNameExchangeUser.LastName


0
投票

只需替换此行:

Dim tekst$: tekst = "Hi " & Split(objItem2.SenderName)(0) & "," & vbNewLine & vbNewLine
© www.soinside.com 2019 - 2024. All rights reserved.