无法从ASP.NET网页发送邮件

4

我在我的网站上有一个“联系我们”页面,想要从中发送邮件。这是我的代码:

MailMessage feedBack = new MailMessage();

feedBack.To.Add("some@some.com");
feedBack.From = new MailAddress("MyClient@some.com");
feedBack.Subject = "Mail from My Client's Website.";  
feedBack.Body = "Sender Name: " + Name.Text + "<br/><br/>Sender Last Name:"+LastName.Text+"<br/><br/>Sender Company:"+Company.Text+"<br/><br/>Sender Designation:"+Designation.Text+"<br/><br/>Sender Email:"+Email.Text+"<br/><br/>Sender Phone No:"+ PhoneNo.Text+"<br/><br/>Sender Enquiry:"+Enquiry.Text;
feedBack.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.MyClient.com"; //Or Your SMTP Server Address
//smtp.Port = 25;
//smtp.EnableSsl =false;
smtp.Credentials = new System.Net.NetworkCredential("MyClient@some.com","XXXX");
//Or your Smtp Email ID and Password
 smtp.Send(feedBack);

我一直在遇到这个错误:

连接尝试失败,因为连接方在一段时间后没有正确地回应,或者已经建立的连接失败,因为连接的主机没有响应 64.37.118.141:25

我已经与我的客户验证过,所有详细信息都是正确的(smtp服务器名称、凭据)。

我还尝试将端口设置为587和465,但没有成功。

有人能帮我解决这个问题吗?

可能的原因是什么?

我找不到它。欢迎任何建议。


尝试将邮件发送到您自己的个人电子邮件地址(如雅虎或Gmail),并查看是否收到相同的错误。 - DNR
你的服务提供商是谁?也许他们有一个中继服务器,你需要使用它。 - Alex Mendez
@AlexMendez 我没有询问过这个问题,他们给了我POP服务器和SMTP服务器的名称。 - Priyank Patel
@DotNetRookie 目前我正在尝试将它发送到我的Gmail账户。 - Priyank Patel
@freebird 请尝试使用 smtp.EnableSsl = true; - HatSoft
@HatSoft 我也遇到了同样的错误。 - Priyank Patel
3个回答

2

我通过telnet测试了上述IP地址的25端口,并得到了以下响应:

命令:

telnet 64.37.118.141 25

响应:

Could not open connection to the host, on port 25: Connect failed

很可能端口25被阻止了。您需要找到与您的pop/smtp服务器一起使用的端口。


我应该问他们SMTP服务器的端口号吗? - Priyank Patel
大多数情况下,它们在常见问题解答中列出了。您应该能够在他们的网站上找到它,或者您可以打电话询问。 - Alex Mendez
谢谢你的帮助。那么你认为问题可能是端口号的问题吗? - Priyank Patel
1
这是可能的。现在大多数提供商都会封锁某些端口作为安全措施,其中25号端口就是其中之一。 - Alex Mendez
我和您遇到了相同的问题,并发现使用像 MS Outlook 这样的程序提供的相同配置也适用于 .net。 - Alex Mendez
非常感谢,我会询问端口号的。谢谢,伙计。 - Priyank Patel

1

那么,EdSF,你有什么建议吗?能不能简单地告诉我我的机会,我有点不知所措。感谢您的建议。 - Priyank Patel
@freebird 需要澄清一下 - 你是使用谁的SMTP服务器来发送邮件?你上面提供了一个IP地址,但在一些评论中你提到了GMAIL? - EdSF
我正在使用我的客户SMTP服务器。 - Priyank Patel
@freebird 如果您正在使用客户端的服务器,请参考Alex的上面答案。看起来端口25被阻止了。如果他们使用不同的端口,并且网站托管在共享服务器上,那么您将遇到问题(再次提醒,您只能在“中等信任”下使用端口25)。解决方案:询问客户端为什么阻止端口25,应该使用哪个端口。了解您的托管选项-共享几乎总是意味着“中等信任”,如果是这样,请使用不同的SMTP服务器... - EdSF

0

您是否检查了托管 Web 应用的服务器是否设置为允许通过 SMTP 服务器发送邮件?有时需要设置信任连接以允许通过一个服务器中继到另一个服务器。


我应该问他们所提供的SMTP服务器是否被允许发送电子邮件吗? - Priyank Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接