c#和Godaddy服务器的电子邮件发送错误
您好,我正在使用goodaddy的主机,我的应用程序是用c#编写的,问题是在发送电子邮件时,这是我的代码c#和Godaddy服务器的电子邮件发送错误,c#,asp.net,.net,email,C#,Asp.net,.net,Email,您好,我正在使用goodaddy的主机,我的应用程序是用c#编写的,问题是在发送电子邮件时,这是我的代码 public ResponseDto sendEmail(EmailDto emailDto) { try { MailMessage message = new MailMessage(); SmtpClient client = new SmtpClient(); message.F
public ResponseDto sendEmail(EmailDto emailDto) {
try
{
MailMessage message = new MailMessage();
SmtpClient client = new SmtpClient();
message.From = new MailAddress("mail@gmail.com");
message.Subject = "have a new mail";
message.Body = "info: \n "
+ "name: " + emailDto.Name
+ "\mail: "+ emailDto.Email + "\nMessage: " +
emailDto.Message;
message.To.Add("mail@hotmail.com");
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Port = 587;
client.Host = "smtp.gmail.com";
client.Credentials = new System.Net.NetworkCredential("mail@gmail.com", "(password");
client.Send(message);
}
catch (Exception e) {
return new ResponseDto
{
message = e.ToString()
,
Success = false
};
}
return new ResponseDto
{
message = "success",
Success = true
};
}
我发送电子邮件的电子邮件是gmail,错误是下一个
System.Net.Mail.SmtpException:发送邮件失败。-->System.Net.WebException:无法连接到远程服务器-->System.Net.Sockets.SocketException:试图在System.Net.Sockets.socket.DoConnect(EndPoint endPointSnapshot,SocketAddress SocketAddress SocketAddress)以其访问权限74.125.199.109:587禁止的方式访问套接字在System.Net.ServicePoint.ConnectSocketInternal(布尔连接失败、套接字s4、套接字s6、套接字和套接字、IP地址和地址、ConnectSocketState状态、IAsyncResult asyncResult、异常和异常)----内部异常堆栈跟踪的结束---System.Net.ServicePoint.GetConnection(PooledStream PooledStream、对象所有者、布尔异步、IPAddress&address、Socket&abortSocket、Socket&abortSocket6)在System.Net.PooledStream.Activate(对象所有者对象、布尔异步、GeneralAsyncDelegate异步回调)在System.Net.PooledStream.Activate(对象所有者对象、GeneralAsyncDelegate异步回调)在System.Net.Mail.SmtpConnection.GetConnection(ServicePoint ServicePoint)的System.Net.Mail.SmtpTransport.GetConnection(ServicePoint ServicePoint)的System.Net.Mail.SmtpClient.GetConnection(ServicePoint ServicePoint)的System.Net.Mail.SmtpTransport.GetConnection(ServicePoint ServicePoint ServicePoint)的System.Net.Mail.SmtpClient.GetConnection()中在System.Net.Mail.SmtpClient.Send(MailMessage message)--内部异常堆栈跟踪的结尾---在System.Net.Mail.SmtpClient.Send(MailMessage message message)的核心.EmailManager.sendEmail(EmailDto EmailDto)
有什么问题吗?这是我行之有效的方法。我将在web配置中设置用户名和密码
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("mail@gmail.com", "");
mailMessage.To.Add(userEmailAddress);
mailMessage.Subject = subject;
mailMessage.Body = "";
mailMessage.IsBodyHtml = true;
SmtpClient mailSender = new SmtpClient(ConfigurationManager.AppSettings["smtpconn"]);
await mailSender.SendMailAsync(mailMessage);
web config
<appSetting>
<add key="smtpconn" value="smtp.gmail.com" />
</appSettings>
<system.net>
<mailSettings>
<smtp from="mail@gmail.com">
<network host="smtp.gmail.com" port="587" userName="un" password="pw" defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net>
MailMessage=newmailmessage();
mailMessage.From=新邮件地址(“mail@gmail.com", "");
mailMessage.To.Add(userEmailAddress);
mailMessage.Subject=主题;
mailMessage.Body=“”;
mailMessage.IsBodyHtml=true;
SmtpClient mailSender=新的SmtpClient(ConfigurationManager.AppSettings[“smtpconn”]);
等待mailSender.SendMailAsync(mailMessage);
网络配置
我解决了,我希望这个答案能帮助一些人,代码如下:
public ResponseDto sendEmail(EmailDto emailDto) {
try
{
MailMessage message = new MailMessage();
SmtpClient client = new SmtpClient();
message.From = new MailAddress("mail@gmail.com");
message.Subject = "have a new mail";
message.Body = "info: \n "
+ "name: " + emailDto.Name
+ "\mail: "+ emailDto.Email + "\nMessage: " +
emailDto.Message;
message.To.Add("mail@hotmail.com");
client.EnableSsl = false;
client.UseDefaultCredentials = false;
client.Port = 25;
client.Host = "relay-hosting.secureserver.net";
client.Send(message);
}
catch (Exception e) {
return new ResponseDto
{
message = e.ToString()
,
Success = false
};
}
return new ResponseDto
{
message = "success",
Success = true
};
}
问题是其他中继/smtp服务器无法从我们的主机上工作。我不需要指定密码。我更改了端口和主机,这是帮助我的链接
https://au.godaddy.com/community/Developer-Cloud-Portal/Unable-to-send-email-from-C-net-application-from-website/td-p/2394显然,使用共享主机帐户。或者您可以尝试代替SMTP@KenY-N y看到这篇帖子,也许我需要设置一封来自godaddyI的电子邮件,几分钟后我得到了答案,谢谢大家!我做到了,而且给我一个你认为问题可能出在托管提供商身上的同样的错误。我觉得可能。我的实现不是异步的,但是否无关?我解决了,几分钟后我得到了答案谢谢!你救了我一命:)client.Host=“relay hosting.secureserver.net”;解决了我们的问题