Asp.net mvc 使用SMTP发送电子邮件时出错&;exchange server office365.com

Asp.net mvc 使用SMTP发送电子邮件时出错&;exchange server office365.com,asp.net-mvc,asp.net-mvc-4,email,smtp,smtpclient,Asp.net Mvc,Asp.net Mvc 4,Email,Smtp,Smtpclient,我正在尝试使用SMTP通过exchange server(即outlook设置中的outlook.office365.com)从控制器(MVC4)发送电子邮件,但未能成功。我从以前的许多帖子中尝试了解决方案,但没有得到任何线索。我真诚地感谢你们的帮助。。 以下是我的邮件配置: <system.net> <mailSettings> <smtp> <network host="smtp.office365.com" us

我正在尝试使用SMTP通过exchange server(即outlook设置中的outlook.office365.com)从控制器(MVC4)发送电子邮件,但未能成功。我从以前的许多帖子中尝试了解决方案,但没有得到任何线索。我真诚地感谢你们的帮助。。 以下是我的邮件配置:

<system.net>
    <mailSettings>
      <smtp>
        <network host="smtp.office365.com" userName="no-reply@mydomain.com" password="defaultPassword"/>
      </smtp>
    </mailSettings>
  </system.net>

这是我的电子邮件课程: 公共类电子邮件 { 公共电子邮件(){}

私有字符串发送方{get;set;}
私有列表收件人{get;set;}
私有字符串主题{get;set;}
私有字符串体{get;set;}
公共bool sendmail()
{
尝试
{
var smptClient=new SmtpClient{EnableSsl=true};
MailMessage newEmail=新邮件();
foreach(此.Recipients中的var receipent)
newEmail.To.Add(新邮件地址(收件人));
newEmail.From=新邮件地址(this.Sender);
newEmail.Subject=this.Subject;
newEmail.Body=this.Body;
newEmail.IsBodyHtml=false;
smptClient.Send(新邮件);
返回true;
}
catch{return false;}
}
}
在上面的代码中,如果我使用“EnableSsl=true”,我会得到错误“服务器不支持安全连接”。如果禁用ssl,仍然会出现以下错误:


SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:5.7.57 SMTP;客户端未通过身份验证,无法在从

发送邮件期间发送匿名邮件。最后,我将解决与我们拥有的域相关的问题。
use this piece of code:

 MailMessage msg = new MailMessage();
    msg.To.Add(new MailAddress("someone@somedomain.com", "SomeOne"));
    msg.From = new MailAddress("you@yourdomain.com", "You");
    msg.Subject = "This is a Test Mail";
    msg.Body = "This is a test message using Exchange OnLine";
    msg.IsBodyHtml = true;

    SmtpClient client = new SmtpClient();
    client.UseDefaultCredentials = false;
    client.Credentials = new System.Net.NetworkCredential("your user name", "your password");
    client.Port = 25; // give 587 if 25  is blocked 
    client.Host = "smtp.office365.com";
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.EnableSsl = true;
    try
    {
        client.Send(msg);
        lblText.Text = "Message Sent Succesfully";
    }
    catch (Exception ex)
    {
        lblText.Text = ex.ToString();
    }
对于面临类似问题的人,以下是我如何解决的。以下是我的电子邮件设置:

<network host="smtp.office365.com" userName="no-reply@mydomain.com" password="defaultPassword"/>

如果您在域中,则您的用户名必须在用户名中提及域,即否-reply@domain.mydomain.com和砰的一声:)


干杯

最后,我将解决与我们拥有的域相关的问题。 对于面临类似问题的人,以下是我如何解决的。以下是我的电子邮件设置:

<network host="smtp.office365.com" userName="no-reply@mydomain.com" password="defaultPassword"/>

如果您在域中,则您的用户名必须在用户名中提及域,即否-reply@domain.mydomain.com和砰的一声:)


干杯

谢谢,不过我已经试过了。它会导致与我在问题中提到的相同的错误检查您使用的端口号。可能是您的端口被阻塞以前我使用了端口25,但出现错误“服务器不支持安全连接”。启用SSL后,我使用了端口587,但仍然无法工作。谢谢,但我已经尝试过了。它会导致与我在问题中提到的相同的错误检查您使用的端口号。可能是您的端口被阻塞以前我使用了端口25,但出现错误“服务器不支持安全连接”。启用SSL后,我使用了端口587,但仍然无法工作