无法连接到服务器的SMTP端口

时间:2012-11-16 16:17:25

标签: c# asp.net email smtp

我有以下代码,我正在尝试发送电子邮件。我使用另一台服务器作为SMPTClient。

MailMessage message = new MailMessage();
message.To.Add(toEmailId);
message.Subject = "test Subject";
message.From = new System.Net.Mail.MailAddress("myid@xyz.com");
message.Body = "This is a system generated email. Please do not reply";
SmtpClient smtp = new SmtpClient("anotherservername"); 
smtp.Send(message);

在调试时,我在最后一行得到错误。错误是:

An attempt was made to access a socket in a way forbidden by its access permissions SERVER IP :25 

我从互联网上发现我的防火墙可能阻止我访问该服务器的端口,或者是否有任何我错过的设置,配置。显然,在该服务器上部署的应用程序能够发送电子邮件。我还在建一个进行测试。

1 个答案:

答案 0 :(得分:0)

某些服务器通过检查您是否在连接到SMTP之前连接到POP服务器一段时间来执行身份验证和授权。您应首先尝试使用POP连接和身份验证,然后再连接到SMTP。

从历史上看,电子邮件客户端首先检查并发送电子邮件发送和接收例程,因此这被用作差的勒芒授权。 Take a look at wikipedia article about POP before SMTP


导致some people这一问题的另一个问题是如何向SmtpClient提供服务器地址。您应该使用明确提供端口号的构造函数,而不是将其附加到IP /主机名。即。

而不是new SmtpClient("123.123.123.123:25")

使用new SmtpClient("123.123.123.123", 25)