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

C# 中使用应用密码登录 Office 365 SMTP 发送邮件的问题咨询

双因素认证下C# WPF调用Office 365发送邮件解决方案

前置条件

首先确认企业O365租户管理员已开放应用密码创建权限,若管理员禁用了该功能,需切换为Microsoft Graph OAuth2认证方案。

步骤1:生成O365应用密码

  • 登录你的O365企业账号,进入安全信息设置页面
  • 选择「添加登录方法」,在下拉列表中选中「应用密码」
  • 自定义应用标识名(例如WPF邮件发送工具),生成后立即复制保存该密码,该密码仅展示一次,遗失需重新生成

步骤2:代码改造

原有基于SmtpClient的代码无需做结构调整,仅需将原账号登录密码替换为上一步生成的应用密码即可,核心代码示例如下:

using System.Net;
using System.Net.Mail;

public void SendOffice365Mail(string recipient, string mailSubject, string mailContent)
{
    using (SmtpClient client = new SmtpClient("smtp.office365.com", 587))
    {
        client.EnableSsl = true;
        client.UseDefaultCredentials = false;
        // 密码位替换为生成的应用密码,无需修改账号地址
        client.Credentials = new NetworkCredential("你的O365企业邮箱完整地址", "你生成的16位应用密码");
        
        MailMessage message = new MailMessage();
        message.From = new MailAddress("你的O365企业邮箱完整地址");
        message.To.Add(recipient);
        message.Subject = mailSubject;
        message.Body = mailContent;
        message.IsBodyHtml = false; // 可根据需求调整是否支持HTML内容

        client.Send(message);
    }
}

异常排查

  • 若提示认证失败,首先检查应用密码是否完整复制,无多余空格或字符遗漏
  • 联系管理员确认对应邮箱账号已开启SMTP AUTH权限,未被租户全局限制
  • 若企业禁用了应用密码功能,需更换为Microsoft Graph API配合OAuth2认证的方案实现邮件发送

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:57:04