最近开发一个使用javamail发邮件的功能,遇到了一些小问题颇费一番周折,过后总结如下:
通过javamail发邮件的程序网上很多,随便弄一个下来配置完却不一定好用,通常大家会遇到的问题有 Could not connect to SMTP host 或者Connection timed out再或者Unknown SMTP host等错误,让人不知所措。
我的经验是首先使用telnet进行测试如果telnet测试不通过,发邮件肯定不会成功的。
telnet的测试命令为:telnet host 25其中host为邮件服务器地址 。
例如 :telnet smtp.163.com 25
有可能会出现下面的结果: 220 163.com Anti-spam GT for Coremail System (163com[20081010]) 421 closing transmission channel 这都是地址不通的结果,这时需要查看自己的防火墙配置是否关闭了端口25
例如 :telnet mail02 25(mail02为公司内部的邮件服务器地址)
出现如下提示: 220 mail02.HOLD.FOUNDER.COM Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at Tue, 17 Feb 2009 09:58:29 +0800 这证明已经通了。
邮件服务器地址如果通的话那就是程序的问题了,就比较容易解决了。通常查看自己邮箱的用户名、地址或者密码等信息是否错误。