【问题标题】:Send-MailMessage change how From email address is displayed in OutlookSend-MailMessage 更改来自电子邮件地址在 Outlook 中的显示方式
【发布时间】:2017-01-08 17:53:29
【问题描述】:

使用PowerShell的Send-MailMessage -From 'Some person <some.Person@company.com>发送邮件时,Outlook会以Some Person <some.person@company.com>的格式显示发件人,而使用Outlook发送邮件时,发件人显示为Some Person

有什么方法可以让Send-MailMessage cmdlet 格式化邮件消息,以便 Outlook 只显示名称而不显示名称 + 电子邮件地址?

围绕这个主题搜索会返回大量“如何使用 Send-MailMessage”或使用.net 的答案,但并没有真正直接解决这个问题。

【问题讨论】:

    标签: powershell outlook


    【解决方案1】:

    MailAddress 类有一个 DisplayName 属性,您可以使用它来覆盖它。

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

    尝试手动使用SmtpClient class,然后用this MailAddress constructor覆盖发件人地址的显示名称:

    # 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)
    

    【讨论】:

    • 刚刚测试过,遗憾的是 Outlook 拒绝合作。电子邮件的显示名称仍显示为Some Person <Some.Person@company.com>
    • 现在.net也很固执,就像'DisplayName' is a ReadOnly property.
    • @user4317867 是的,您只能通过构造函数设置它。所以,DisplayName 属性在发送前在 powershell 中显示为Some person,但 Outlook 仍然显示Some Person <Some.Person@company.com>?
    • 正确,更烦人的是新邮件弹出通知正确显示仅显示名称,但邮件项包含完整的电子邮件地址。
    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 2015-02-19
    • 1970-01-01
    • 2015-04-24
    • 2011-07-03
    相关资源
    最近更新 更多