首页 > 解决方案 > 如何或无法通过 office 365 smtp 发送邮件

问题描述

我正在尝试通过 office365 smtp 服务器发送邮件,但它提示“发送邮件失败”。详细报告显示“{“无法从传输连接读取数据:net_io_connectionclosed。”}”

这是我的代码

public string SendEmail(string To, string Sub, string Desc)
    {
       string mess = "";
        MailMessage mail = new MailMessage();
        mail.Subject = Sub;
        mail.From = new MailAddress(SenderEmail);
        mail.To.Add(To);
        mail.Body = Desc;
        mail.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient("smtp-mail.outlook.com", 587);
        smtp.EnableSsl = true;
        smtp.UseDefaultCredentials = false;
        NetworkCredential netCre = new NetworkCredential(SenderEmail, SenderPass);
        smtp.Credentials = netCre;
        try
        {
            smtp.Send(mail);
            mess = "Success";
        }
        catch (Exception ex)
        {
            mess = "Fail";
            return ex.Message;
        }
       return mess;
    }

Web.config 将是

           <add key="Sendermail" value="email" />
           <add key="SenderPassword" value="password" />

注意:电子邮件地址是域配置的。当我尝试使用 gmail smtp 端口发送邮件时,它工作正常,仅适用于 Outlook(office365)我面临这个问题

标签: c#asp.netmodel-view-controller

解决方案


总体而言,您的解决方案似乎是正确的,尽管可能有一些原因是由于 TLS 问题或主机导致的,您是否尝试将 smtp.office365.com 作为服务器/主机?

可以在此处找到其他一些检查/测试选项:

https://docs.microsoft.com/en-us/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-办公室-3


推荐阅读