我正在开发一个ASP .Net MVC网站,我通过Godaddy smtp发送电子邮件,以前我的网站是用经典ASP开发的,它是托管在godaddy的网站托管上的(然后它工作正常)但现在我在IIS上托管这个网站,
我正在使用以下代码发送电子邮件,但它无效
MailMessage msg = new MailMessage();
msg.From = new MailAddress(model.From);
msg.To.Add(model.To);
msg.Body = model.Body;
msg.Subject = model.Subject;
SmtpClient smtp = new SmtpClient("relay-hosting.secureserver.net",25);
smtp.Credentials = new NetworkCredentials("support@{myCompanyName}.com",{password});
smtp.EnableSsl = False;
smtp.Send(msg);
我还使用了 dedrelay.secureserver.net 而不是 relay-hosting.secureserver.net 主机(如https://pk.godaddy.com/help/what-is-my-servers-email-relay-server-16601所述)但两者都不起作用
答案 0 :(得分:3)
GoDaddy不允许通过他们的服务器进行中继,除非您使用的是包含SMTP的托管计划之一。
答案 1 :(得分:1)
现在,对于出站电子邮件,大多数SMTP服务器都非常严格。我建议在假设代码出现问题之前,先用电子邮件客户端(或telnet,如果你是那种东西)测试参数。这也可能会给您一个有助于调试的错误消息。
有些事情会浮现在脑海中:
除非连接完全失败(这将指向第4个),否则服务器应该在某个时候发送某种错误消息。正如我上面所写,我建议测试/记录通信,这应该提供一些见解。
答案 2 :(得分:1)
也许您应该打电话给您的ISP,在荷兰,他们主要阻止端口25,因为恶意软件和用于发送电子邮件的蠕虫。它可以这么简单。您是否尝试过从本地计算机远程登录到电子邮件服务器(telnet mailserver.io 25)?如果最终结束时您得到了答案,则端口将在您的ISP或其末尾过滤掉。
答案 3 :(得分:1)
您可以尝试使用此代码
smtp.Host = "relay-hosting.secureserver.net"; smtp.EnableSsl = false; smtp.UseDefaultCredentials = false; smtp.Port = 25;
答案 4 :(得分:0)
您可以在webconfig中设置您的凭据,例如(对于godaddy)
<system.net>
<mailSettings>
<smtp from="your email address">
<network host="relay-hosting.secureserver.net" port="25" />
</smtp>
</mailSettings>
</system.net>
在c#中你可以使用
MailMessage message = new MailMessage();
message.From = new MailAddress("your email address");
message.To.Add(new MailAddress("your recipient"));
message.Subject = "your subject";
message.Body = "content of your email";
SmtpClient client = new SmtpClient();
client.Send(message);
它会起作用
答案 5 :(得分:0)
string From = "[MyGodaddyEMailAddress]"; //eg.info@mango.com
string FromPassword = "[MyGodaddyMailPassword]";
try
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress(From);
msg.To.Add("[RecipientEmailAddress]");
msg.Subject = "[MailSubject]";
msg.Body = "[MailBody]";
msg.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("mail.[domain].com", 587); //eg. mail.mango.com
smtp.Credentials = new System.Net.NetworkCredential(From, FromPassword);
smtp.EnableSsl = false;
// Sending the email
smtp.Send(msg);
// destroy the message after sent
msg.Dispose();
Console.WriteLine("Message Sent Successfully");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
Console.ReadKey();