You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为PowerShell的Send-MailMessage命令配置发件人显示名

Send-MailMessage 发件人显示名配置方案

方案1:直接使用原生参数配置(无需创建MailMessage对象)

Send-MailMessage 原生支持标准邮箱地址格式,直接将From参数设置为"显示名 <邮箱地址>"格式即可生效,无需额外引入.Net对象。
修改后的代码如下:

$Mail = @{             
    'To'         = 'someone@domain.com'
    'From'       = "Lastname, Firstname <me@domain.com>" 
    'Subject'    = "TEST NOTIFICATION"
    'SMTPServer' = 'mail.domain.com'
    'Encoding'   = 'UTF8'
    'Priority'   = 'High'
    'Body'       = "Hi, this is a test"
}

Send-MailMessage @Mail

如果显示名包含中文、特殊符号,配合参数里的Encoding = 'UTF8'即可避免乱码问题。

方案2:使用System.Net.Mail.MailMessage对象实现

如果你需要做更复杂的邮件配置,确实可以通过创建.Net MailMessage对象实现,完整代码如下:

# 初始化邮件对象
$mailMessage = New-Object System.Net.Mail.MailMessage
# 配置发件人:参数依次为邮箱地址、显示名、显示名编码
$mailMessage.From = New-Object System.Net.Mail.MailAddress("me@domain.com", "Lastname, Firstname", [System.Text.Encoding]::UTF8)
# 添加收件人
$mailMessage.To.Add("someone@domain.com")
# 配置其他邮件属性
$mailMessage.Subject = "TEST NOTIFICATION"
$mailMessage.SubjectEncoding = [System.Text.Encoding]::UTF8
$mailMessage.Body = "Hi, this is a test"
$mailMessage.BodyEncoding = [System.Text.Encoding]::UTF8
$mailMessage.Priority = [System.Net.Mail.MailPriority]::High

# 初始化SMTP客户端并发送
$smtpClient = New-Object System.Net.Mail.SmtpClient("mail.domain.com")
$smtpClient.Send($mailMessage)

内容的提问来源于stack exchange,提问作者ak2595

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:24:00