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

通过Microsoft 365 SMTP发邮件如何自定义显示名?附PHP Swift Mailer示例

通用前置检查

先确认对应邮箱账号的SMTP AUTH功能已开启:

  • 进入Exchange管理中心对应邮箱账号的编辑页,点击「邮件」-「管理电子邮件应用」
  • 确认「经过身份验证的SMTP」选项已勾选,未开启的话先打开再执行后续配置

原因说明

这是微软365的默认安全策略,通过SMTP提交发信时,系统会优先使用邮箱账号在Exchange后台配置的默认显示名,自动覆盖客户端代码中设置的自定义显示名,避免发件人信息被伪造滥用。

解决方案

根据你的使用场景可选择对应方案:

场景1:所有发信固定使用同一个自定义显示名

直接修改邮箱账号的默认显示名即可,操作步骤:

  1. 登录Exchange管理中心,进入「收件人」-「邮箱」板块
  2. 找到example@domain.com对应的账号,进入编辑页面
  3. 修改「联系人信息」下的「显示名」为你需要的Some content relevant name
  4. 保存配置后等待10-15分钟生效,后续发信就会使用修改后的显示名

场景2:同一个账号需根据不同邮件使用不同自定义显示名

可二选一执行:

方案A:调整Exchange传输配置(需租户管理员权限)

使用Exchange Online PowerShell执行以下命令,关闭全局SMTP发件人显示名强制覆盖策略:

# 连接Exchange Online
Connect-ExchangeOnline -Organization 你的租户域名.onmicrosoft.com
# 关闭显示名强制覆盖规则
Set-TransportConfig -UseDisplayNameFromSendAs $false

配置生效后,代码中setFrom设置的自定义显示名即可正常展示。

注意:该配置会影响整个租户的SMTP发信规则,如果企业有严格的邮件安全要求,不建议使用该方案。

方案B:改用Microsoft Graph API发信

相比SMTP协议,Graph API的发信接口对自定义发件人信息的限制更宽松,只要给应用分配了Mail.Send权限,发信请求中的from.name字段填写的自定义名称会直接生效,不会被后台默认值覆盖。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:36:04