邮件服务器-邮件系统-邮件技术论坛(BBS)
标题:
关于ping不到smtp.xxx.com的状况?
[打印本页]
作者:
最爱飞扬
时间:
2010-3-25 11:31
标题:
关于ping不到smtp.xxx.com的状况?
我的MD收发信都正常,内外网的端口映射也都开了,域名xxx.com的MX记录,A记录也都做了。
我现在在做个程序需要点击个按钮自动通过自己的MD帐号给其他人发信,但是怎么试都不行,用同样的程序通过163,qq等邮箱自动发信都能成功。
看了下程序返回的错误,指的是连接smtp.xxx.com连接不上。我试了下命令行ping smtp.xxx.com,结果连接到了60.191.124.236,而且经常发生丢包现象。查了下,这个ip是电信弄的,只要是不能用的域名都会转过去,而我ping smtp.163.com,smtp.qq.com,smtp.gmail.com等都能ping通,那我要怎么做才能ping通自己的smtp.xxx.com?
作者:
终极坏蛋
时间:
2010-3-25 12:01
MD默认的smtp服务器地址是是mail.xxx.com
作者:
heieye104
时间:
2010-3-25 12:03
楼上正解
作者:
wxhsh
时间:
2010-3-25 12:04
ping 是开用icmp协议的,与邮件收发无关,可以不用开。
如果要测SMTP功能,可以用telnet MX域名 25来测试。
作者:
最爱飞扬
时间:
2010-3-25 13:23
我知道是mail.gps2map.net,我的webclient使用都正常没有问题。不过程序代码需要smtp。程序部分代码如下:
Properties p = new Properties();
p.put("mail.smtp.auth", "true");
p.put("mail.transport.protocol", "smtp");
p.put("mail.smtp.host", "smtp.xxx.com"); // 1
p.put("mail.smtp.port", "25");
// 建立会话
Session session = Session.getInstance(p);
Message msg = new MimeMessage(session); // 建立信息
msg.setFrom(new InternetAddress("abc@xxx.com")); // 发件人
msg.setRecipient(Message.RecipientType.TO,
new InternetAddress("abc@gmail.com")); // 收件人
msg.setSentDate(new Date()); // 发送日期
msg.setSubject("答话稀有"); // 主题
msg.setText("快点下在"); // 内容
// 邮件服务器进行验证
Transport tran = session.getTransport("smtp");
tran.connect("smtp.xxx.com", "abc", "123456"); // 2
// abc是用户名,123456是密码
tran.sendMessage(msg, msg.getAllRecipients()); // 发送
System.out.println("邮件发送成功");
如果把1,2处改成smtp.163.com或是smtp.gmail.com都可以实现,但是用我架设的MD实现不了。我也试过把1,2处改成mail.xxx.com,也发送不了。
另外:telnet指令是:telnet mail.xxx.com 25这样么?这样我试过了,可以进的。
作者:
wxhsh
时间:
2010-3-25 13:27
标题:
回复 5楼 最爱飞扬 的帖子
贴下MD的smtp-in(没有写错)日志的相关部分,有助分析出错原因。
作者:
最爱飞扬
时间:
2010-3-25 13:31
程序返回的错误信息是: Could not connect to SMTP host: smtp.myhost.com, port: 25。
所以我才试着ping smtp.myhost.com,ping不通。而ping smtp.163.com等都能ping通。
作者:
wxhsh
时间:
2010-3-25 13:34
标题:
回复 7楼 最爱飞扬 的帖子
只要能telnet 25能成功就说明与服务器的通讯没问题,最好在服务器上做下telnet 试试。
作者:
最爱飞扬
时间:
2010-3-25 13:40
标题:
回复 8楼 wxhsh 的帖子
我用telnet mail.myhost.com 25能成功,进去后显示信息是:220 myhost.com ESMTP MDaemon 10.1.2;Thu,25 Mar 2010 13:38:28+0800
但是telnet mail.163.com 25不能成功。
然后我用telnet smtp.163.com 25 能成功,进去后显示信息(大家可以自己试下)
但是telnet smtp.myhost.com 25不能成功。
作者:
wxhsh
时间:
2010-3-25 13:44
标题:
回复 9楼 最爱飞扬 的帖子
我可以肯定你应该是个优秀的程序员,但也可以肯定你对域名常识及TCP/IP的工作原理实在是有点。。。。。。
mail.163.com是163的WEB MAIL地址,未必与STMP的IP要一致,事实象这样的大型邮服SMTP也是分步式的,有N个邮服来做冗余。
这样吧,你程序中把host段改成mail.myhost.com就可以了。
作者:
最爱飞扬
时间:
2010-3-25 13:57
标题:
回复 10楼 wxhsh 的帖子
呵呵,你看得很准,我本来就是写程序的,最近对网络的一些服务应用开始感兴趣,所以跟着学点。
我试过把host段改成mail.myhost.com,程序运行也显示邮件发送成功了,但是我的163邮箱并没收到信,而MD邮箱也并没有发信记录。
作者:
wxhsh
时间:
2010-3-25 13:59
标题:
回复 11楼 最爱飞扬 的帖子
如果没有发生UFO事件或手工关闭过日志,MD肯定会有相关记录,请检查mdaemon\logs中的smtp-out日志,检查哪里出了问题。
作者:
最爱飞扬
时间:
2010-3-25 14:03
标题:
回复 12楼 wxhsh 的帖子
哇哈哈,十分感谢楼上的,我实现了。
刚把代码改了下,应该是我代码的问题。的确,只要改成mail.myhost.com就能发送了,刚试了下,163邮箱终于收到邮件了。搞了2天了,终于搞掂了。谢谢大家的帮助,特别是wxhsh的帮助。
欢迎光临 邮件服务器-邮件系统-邮件技术论坛(BBS) (http://bbs.5dmail.cn/)
Powered by Discuz! X3.2