C# 使用asp.net发送电子邮件会显示此错误:SMTP服务器需要安全连接,或者客户端未通过身份验证
我尝试使用以下代码发送电子邮件:C# 使用asp.net发送电子邮件会显示此错误:SMTP服务器需要安全连接,或者客户端未通过身份验证,c#,asp.net,email,C#,Asp.net,Email,我尝试使用以下代码发送电子邮件: public void Semail(string subject, string messageBody, string toAddress) { MailMessage mail = new MailMessage(); mail.To.Add(toAddress); //mail.To.Add("amit_jain_online@yahoo.com");
public void Semail(string subject, string messageBody, string toAddress)
{
MailMessage mail = new MailMessage();
mail.To.Add(toAddress);
//mail.To.Add("amit_jain_online@yahoo.com");
mail.From = new MailAddress("noreplykaramaoozi@eesharif.edu");
mail.Subject = subject;
string Body = messageBody;
mail.Body = Body;
mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "sina.sharif.ir"; //Or Your SMTP Server Address
smtp.Port = 587;
smtp.Credentials = new System.Net.NetworkCredential
("noreplykaramaoozi@eesharif.edu", "*******");
//Or your Smtp Email ID and Password
smtp.EnableSsl = false;
smtp.Send(mail);
}
但在执行之后,我得到了这个错误:
The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Authentication required
堆栈跟踪:
[SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Authentication required]
System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response) +2162008
System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, String from) +287
System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception) +137
System.Net.Mail.SmtpClient.Send(MailMessage message) +2188821
Novitiate.fa.Register.btnLogin_Click(Object sender, EventArgs e) +2948
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +154
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3707
致以最诚挚的问候如果这有帮助,请尝试以下方法:
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress(Username);
mail.To.Add(TxtEmail.Text);
mail.Subject = Subject;
mail.Body = Body;
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential(Username, Password);
SmtpServer.EnableSsl = true;
SmtpServer.Timeout = 20000;
SmtpServer.Send(mail);
您的gmail安全设置阻止邮件访问gmail帐户。因此,如果你想发送消息,你必须“关闭”对不太安全的应用程序的访问。当你这么做的时候,你可以很容易地发送信息,但是,冒着gmail安全的风险。所以,这完全取决于你 下面给出了更改安全性的链接
登录到您的电子邮件帐户后,考虑@Krunal Patil的答案,并对发送的验证邮件采取行动,以授予对您的C#应用程序的访问权。可能
smtp.EnableSsl=true代码>?我将其更改为true,但出现了以下错误:服务器无法支持安全连接!!!服务器在587上有一个开放的端口?你不是在需要身份验证的代理后面吗?一个简单的邮件服务器(outlook或thunderbird)可以连接吗?你知道我们是一家为一所大学设计系统的公司,我们要求他们向我们提供有关其邮件服务器的信息,这给了我们一个用户名和密码、smtp服务器和一个端口,我对此一无所知!!!我使用telnet
在端口587上尝试了您的SMTP,它正在工作并响应,这意味着SMTP服务器正常。您的凭据可能无效。您可以尝试使用telnet
,查看此链接有什么不同?不同之处在于SmtpServer.EnableSsl=true;它为您提供了一个安全的连接,您会因此收到错误信息。