SMTP通过SmtpClinet(SmarterEmail服务器)发送邮件失败 [英] SMTP send email failure by SmtpClinet (SmarterEmail server)
问题描述
我已经配置并运行SmarterEmail服务器25端口上运行SMTP服务,配置的电子邮件帐户。
I have configured and running SmarterEmail server, running SMTP service for 25 port, configured email account.
我创建了简单的.NET应用程序通过我的电子邮件服务器发送电子邮件,这是非常简单的:
I've created simple .NET application to send email by my Email server, it is really simple:
public void SendEmail(EmailMessage message, string username, string password, string host, int port, bool enableSsl)
{
MailMessage mm = new MailMessage(message.From, message.To, message.Subject, message.Message);
NetworkCredential credentials = new NetworkCredential(username, password);
SmtpClient sc = new SmtpClient(host, 25);
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.UseDefaultCredentials = false;
sc.EnableSsl = enableSsl;
sc.Credentials = credentials;
sc.Send(mm);
}
此应用程序失败,异常:
This application failed with exception:
未处理的异常:System.Net.Mail.SmtpException:失败发送邮件。 --->取值 ystem.Net.WebException:无法连接到远程服务器---> System.Net.S ockets.SocketException:A连接尝试失败,因为连接的方 没有了一段时间,或已建立的连接FAILE后没有正确答复 ð,因为连接主机未能响应173.248.182.102:25 在System.Net.Sockets.Socket.DoConnect(端点endPointSnapshot,SocketAddre SS为SocketAddress) 在System.Net.ServicePoint.ConnectSocketInternal(布尔connectFailure,袜子 等S4,S6插座,插座及放大器;插座,ip地址和放大器;地址,ConnectSocketState状态, IAsyncResult的asyncResult,的Int32超时,异常和放大器;例外) ---内部异常堆栈跟踪的结尾--- 在System.Net.ServicePoint.GetConnection(PooledStream PooledStream,对象流 仪,布尔异步,ip地址和放大器;地址,插座及放大器; abortSocket,插座及放大器; abortSocket 6,的Int32超时) 在System.Net.PooledStream.Activate(对象owningObject,布尔异步,的Int32 超时,GeneralAsyncDelegate的AsyncCallback) 在System.Net.PooledStream.Activate(对象owningObject,GeneralAsyncDelegate 的AsyncCallback) 在System.Net.ConnectionPool.GetConnection(对象owningObject,GeneralAsyncD elegate的AsyncCallback,的Int32 creationTimeout) 在System.Net.Mail.SmtpConnection.GetConnection(的ServicePoint服务点) 在System.Net.Mail.SmtpTransport.GetConnection(的ServicePoint服务点) 在System.Net.Mail.SmtpClient.GetConnection() 在System.Net.Mail.SmtpClient.Send(MailMessage消息) ---内部异常堆栈跟踪的结尾--- 在System.Net.Mail.SmtpClient.Send(MailMessage消息) 在SendMail.MailService.SendEmail(EmailMessage消息,字符串username,S饰 NG密码,串主机,端口的Int32,布尔enableSsl)在D:\开发\幻灯 CTS \实验\的SendMail \的SendMail \的Program.cs:行36 在SendMail.Program.Main(字串[] args)在D:\开发\项目\实验 小号\的SendMail \的SendMail \的Program.cs:行52
Unhandled Exception: System.Net.Mail.SmtpException: Failure sending mail. ---> S ystem.Net.WebException: Unable to connect to the remote server ---> System.Net.S ockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection faile d because connected host has failed to respond 173.248.182.102:25 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddre ss socketAddress) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Sock et s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) --- End of inner exception stack trace --- at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object ow ner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket 6, Int32 timeout) at System.Net.PooledStream.Activate(Object owningObject, Boolean async, Int32 timeout, GeneralAsyncDelegate asyncCallback) at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback) at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncD elegate asyncCallback, Int32 creationTimeout) at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint) at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint) at System.Net.Mail.SmtpClient.GetConnection() at System.Net.Mail.SmtpClient.Send(MailMessage message) --- End of inner exception stack trace --- at System.Net.Mail.SmtpClient.Send(MailMessage message) at SendMail.MailService.SendEmail(EmailMessage message, String username, Stri ng password, String host, Int32 port, Boolean enableSsl) in D:\Development\Proje cts\Experiments\SendMail\SendMail\Program.cs:line 36 at SendMail.Program.Main(String[] args) in D:\Development\Projects\Experiment s\SendMail\SendMail\Program.cs:line 52
邮件服务器:mail.trackyt.net,端口= 25,SSL = FALSE。它不会从我的(本地)机的工作。
Mail server: mail.trackyt.net, port = 25, SSL = false. It does not work from my (local) machine.
在同一时间,如果我SmarterEmail(远程)运行该应用程序复制到机器,它成功的作品!
In the same time, if I copy this application to machine were SmarterEmail (remote) is running, it successfully works!
我认为这阻止防火墙,启用25远程机器 - 同样的结果。 禁用防火墙,在本地和远程计算机 - 同样的结果
I thought it blocked by Firewall, enabled 25 on remote machine - same result. Disabled Firewall, both locally and remote machine - same result.
其它诊断:
运行SMTP通过 http://pingability.com/smtptest.jsp 测试:
Run SMTP test by http://pingability.com/smtptest.jsp:
EHLO pingability.com 250 MAST-WIN2K8R2-STD你好[207.210.209.134] 250-SIZE 31457280 250-AUTH LOGIN CRAM-MD5 250 OK DEBUG SMTP:找到扩展大小,ARG31457280 DEBUG SMTP:找到扩展名AUTH,ARGLOGIN CRAM-MD5 DEBUG SMTP:找到扩展名OK,ARG DEBUG SMTP:尝试进行身份验证 DEBUG SMTP:检查机制:LOGIN PLAIN DIGEST-MD5 NTLM AUTH LOGIN 334 VXNlcm5hbWU6 c3VwcG9ydA == 334 UGFzc3dvcmQ6 c3VwcG9ydDEyMw == 235认证成功
EHLO pingability.com 250-MAST-WIN2K8R2-STD Hello [207.210.209.134] 250-SIZE 31457280 250-AUTH LOGIN CRAM-MD5 250 OK DEBUG SMTP: Found extension "SIZE", arg "31457280" DEBUG SMTP: Found extension "AUTH", arg "LOGIN CRAM-MD5" DEBUG SMTP: Found extension "OK", arg "" DEBUG SMTP: Attempt to authenticate DEBUG SMTP: check mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM AUTH LOGIN 334 VXNlcm5hbWU6 c3VwcG9ydA== 334 UGFzc3dvcmQ6 c3VwcG9ydDEyMw== 235 Authentication successful
它说,SMTP就可以了。
It says that SMTP is OK.
这是我的机器上远程登录:
Telnet from my machine:
微软远程登录> 0 mail.trackyt.net 25 连接到mail.trackyt.net ......无法打开连接到主机,端口 25:连接失败
Microsoft Telnet> o mail.trackyt.net 25 Connecting To mail.trackyt.net...Could not open connection to the host, on port 25: Connect failed
从SmarterMail机相同的telnet就可以了。
Same telnet from SmarterMail machine is OK.
任何想法?
推荐答案
您从家里这样做呢?许多互联网服务供应商阻止传出端口25。
Are you doing this from home? A lot of ISPs block outgoing port 25.
在smartermail您可以添加SMTP侦听另一个端口。试着增加一为587,看看你是否可以连接到它(假设你有管理员权限才能做到这一点)。
In smartermail you can add a SMTP listener for another port. Try adding one for 587, and see if you can connect to it (assuming you have admin rights to do this).
- 戴夫
这篇关于SMTP通过SmtpClinet(SmarterEmail服务器)发送邮件失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!