我有以下代码,我正在尝试发送电子邮件。我使用另一台服务器作为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
我从互联网上发现我的防火墙可能阻止我访问该服务器的端口,或者是否有任何我错过的设置,配置。显然,在该服务器上部署的应用程序能够发送电子邮件。我还在建一个进行测试。
答案 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)