Powershell 发送邮件更改“发件人”电子邮件地址在Outlook中的显示方式

Powershell 发送邮件更改“发件人”电子邮件地址在Outlook中的显示方式,powershell,outlook,Powershell,Outlook,使用PowerShell的Send MailMessage-From'Some personOutlook发送电子邮件时,将以Some person的格式显示发件人,而使用Outlook发送电子邮件时,发件人仅显示为Some person 是否有任何方法可以获取Send-MailMessagecmdlet来格式化邮件,以便Outlook只显示名称,而不显示名称+电子邮件地址 搜索此主题会返回大量“如何使用Send MailMessage”或使用.net的答案,但实际上并没有直接解决此问题。类Ma

使用PowerShell的
Send MailMessage-From'Some person
Outlook发送电子邮件时,将以
Some person
的格式显示发件人,而使用Outlook发送电子邮件时,发件人仅显示为
Some person

是否有任何方法可以获取
Send-MailMessage
cmdlet来格式化邮件,以便Outlook只显示名称,而不显示名称+电子邮件地址


搜索此主题会返回大量“如何使用Send MailMessage”或使用
.net
的答案,但实际上并没有直接解决此问题。

MailAddress
有一个
DisplayName
属性,可以用来覆盖此属性

不幸的是,
Send MailMessage
只接受字符串作为
-From
参数的参数

尝试手动使用,然后用以下内容覆盖发件人地址的显示名称:


刚刚经历考验,不幸的是,Outlook拒绝合作。电子邮件的显示名称仍然显示为
someperson
现在
.net
也很顽固,因为
'DisplayName'是一个只读属性。
@user4317867是的,您只能通过构造函数进行设置。因此,
DisplayName
属性在发送前在powershell中显示为
Some person
,但Outlook仍显示
Some person
?正确,更令人恼火的是,新邮件弹出通知仅正确显示DisplayName,但邮件项目包含完整的电子邮件地址。
# Create message, add From mailaddress with custom display name
$Message = New-Object System.Net.Mail.MailMessage
$Message.From = New-Object System.Net.Mail.MailAddress 'some.Person@company.com','Some Person'
$Message.To.Add('recipient@company.com')
$Message.Subject = 'Exciting email!'
$Message.Body = @'
Hi Recipient

Check my cool display name in Outlook!

Regards
Some Person
'@

# Send using SmtpClient
$SmtpClient = New-Object System.Net.Mail.SmtpClient 'mailserver.fqdn'
$SmtpClient.Send($Message)