如何捕获用户的 Outlook 电子邮件地址?



我在Excel中创建了一个VBA函数来识别当前用户的电子邮件地址。

Public Function UserName()
Dim OL, olAllUsers, oExchUser, oentry, myitem As Object
Dim User As String
Set OL = CreateObject("outlook.application")
Set olAllUsers = OL.Session.AddressLists.Item("All Users").AddressEntries
User = OL.Session.CurrentUser.Name
Set oentry = olAllUsers.Item(User)
Set oExchUser = oentry.GetExchangeUser()
UserName = oExchUser.PrimarySmtpAddress
End Function

对于大多数用户来说,这会显示他们的电子邮件地址(例如。john_doe@generic.com)。

对于一些人来说,它不会从默认值更新,默认值是我自己的电子邮件,因为当我尝试它时,代码执行成功。

您可以使用Account.SmtpAddress属性来获取SMTP电子邮件地址。它返回一个字符串,表示Account的简单邮件传输协议(SMTP(地址。

Dim UserMailAddress As String
Set UserMailAddress = OL.Session.CurrentUser.SmtpAddress

如果你得到一个类似Exchange的电子邮件地址,你可以将其转换为SMTP地址。有关详细信息,请参阅HowTo:将基于Exchange的电子邮件地址转换为SMTP电子邮件地址。

如果所有用户的电子邮件地址都是常量,那么gmail.com就是常量。system的user_name就是user_id,那么你可以试试这样的方法。

Dim User As String
user = environ("Username")
email = user & "gmail.com"

相关内容

最新更新