此代码在本地运行,但当我将其上传到Godaddy上的服务器时,它不会发送电子邮件。知道为什么它不能在他们的服务器上运行吗?我需要改变什么?
try {
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("Myemail@gmail.com");
mail.To.Add("Myemail@gmail.com");
mail.Subject = "New sign up";
mail.Body = "New member";
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("Myemail@gmail.com", "**Mypass**");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
} catch(Exception ex) {
throw ex;
}
答案 0 :(得分:2)
他们可能阻止外发SMTP连接,以防止垃圾邮件发送者使用他们的服务发送垃圾邮件。您应该检查您收到的错误消息并检查服务器主机的策略。
答案 1 :(得分:2)
从Godaddy托管的网站内部发送时,您需要做几件事。使用他们的中继服务器发送消息(这不适用于您的开发机器,您必须在上传后进行实时测试)。 Here是中继服务器信息。还要确保“发件人”地址是同一域中的电子邮件。我通常使用与toAddress相同的内容。有关为何必要的信息,请参阅here。
这是我用来从Godaddy内部网站发送的代码:
btnSend.Disabled = true;
const string serverHost = "relay-hosting.secureserver.net";
var msg = new MailMessage(toAddress, toAddress);
msg.ReplyTo = new MailAddress(emailFrom);
msg.Subject = subject;
msg.Body = emailBody;
msg.IsBodyHtml = false;
try
{
var smtp = new SmtpClient();
smtp.Host = serverHost;
smtp.Credentials = new System.Net.NetworkCredential("account", "password");
smtp.Send(msg);
}
catch (Exception e)
{
//Log the errors so that we can see them somewhere
}
答案 2 :(得分:0)
您需要通过godaddy smtp服务器发送电子邮件。在我想之前,我遇到了同样的问题。我相信他们会提供如何通过常见问题解答登录的说明。
答案 3 :(得分:0)
如果您拥有对服务器的ssh访问权限,请尝试通过25和465端口telnet smtp.google.com。如果您超时,那么您可能会在某个IP范围之外连接到这些端口。 端口587用于TLS。当您使用SSL时,请尝试端口465。