javaMail使用企业邮箱发邮件失败的问题

dinghun8leech 2009-10-16 02:57:03
本人编写的一段用于发送邮件的代码不能使用企业邮箱发邮件,相关状信息下:
1.同样的代码,同样的平台,使用普通126的邮箱账号+smtp地址可以成功发送邮件,但换成企业邮箱账号+smtp/pop则无法发送
2.所使用的企业邮箱账号正确,且使用smtp/pop配合outlook等软件可以正常发邮件,说明smtp/pop服务是开启的
3.无论smtp/pop服务是否开启,还是账号密码故意填错,统一报 javax.mail.AuthenticationFailedException这个异常,且没有英文解释,只有堆栈信息
-------------------------------------------------------
问题
1.javaMail是不是不支持企业邮箱?
2.如果是程序问题的话该如何改??

代码我就不贴了,老长一段我自己都没耐心看。
...全文
1065 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
悟缘修渡 2011-02-12
  • 打赏
  • 举报
回复
遇到同样的问题,lz是怎样解决的?
LoginOut 2009-10-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dinghun8leech 的回复:]

回3楼,这段代码能发邮件么?连密码都不用输?
[/Quote]

我就是用这段代码发邮件的,当然没有问题,但是至少
email.setAuthentication("登陆邮箱", "登陆");
这里要改成你的实际的,要不然这么发?
在说了,我也不可能把我的邮箱和密码写上去不是吗?

dinghun8leech 2009-10-17
  • 打赏
  • 举报
回复
感谢5楼,找到错误了,田婷的blog我在编写这段代码时就看过了,也意识到要有个验证类,但是经过对比后发现少了一步Session mailSession = Session.getInstance(properties,myauth); 也就是要把验证对象的实例加载到mailSession中。加了这句之后果然就能发了。
回6楼,这个方法不错,感谢提供。
回3楼,这段代码能发邮件么?连密码都不用输?
zl3450341 2009-10-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dinghun8leech 的回复:]
感谢5楼,找到错误了,田婷的blog我在编写这段代码时就看过了,也意识到要有个验证类,但是经过对比后发现少了一步Session mailSession = Session.getInstance(properties,myauth);也就是要把验证对象的实例加载到mailSession中。加了这句之后果然就能发了。
回6楼,这个方法不错,感谢提供。
回3楼,这段代码能发邮件么?连密码都不用输?
[/Quote]

学习了
关于这点 以前不知道呢
zl3450341 2009-10-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 swandragon 的回复:]
有时信箱如果是新注册的话,邮件的服务商默认刚注册的帐号是不能使用pop3的
你写认证类了吗?
http://blog.csdn.net/tianting_wx/archive/2008/06/13/2543015.aspx
[/Quote]

5楼的地址不错

学习了 那楼主的错误应该就是没有加上认证。

平淡面对 2009-10-16
  • 打赏
  • 举报
回复
同意ls的看法。应该是没有加上认证。
另外,lz最好使用下面的方法打印出debug信息,便于查错。


javax.mail.Session mailSession = javax.mail.Session.getInstance(props, null);

mailSession.setDebug(true);

swandragon 2009-10-16
  • 打赏
  • 举报
回复
有时信箱如果是新注册的话,邮件的服务商默认刚注册的帐号是不能使用pop3的
你写认证类了吗?
http://blog.csdn.net/tianting_wx/archive/2008/06/13/2543015.aspx
zl3450341 2009-10-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 loginout 的回复:]
Java code/**
*
*@param from
* 发信人地址
*@param to
* 收信人地址
*@param subject
* 主题
*@param msg
* 正文
**/publicboolean sendMail(String from, String to, String subject, String msg) {
SimpleEmail email=new SimpleEmail();// 邮件服务器 email.setHostName("smtp.163.com");// 登录邮箱用户名和密码 email.setAuthentication("****","****");// 编码方式 email.setCharset("utf-8");try {
email.setFrom(from);
email.addTo(to);
email.setSubject(subject);
email.setMsg(msg);
email.send();
log.error("==发送邮件成功,收件邮箱:"+ to);returntrue;
}catch (Exception e) {
log.error("==发送邮件失败,收件邮箱:"+ to+"==", e);
}returnfalse;
}
可以发送邮件,但是不是企业用户,你在试试,我也是用163测试的
[/Quote]

楼主免费邮箱可以发

那楼主有别的收费邮箱么 换个别的试试看 看能不能发呢
LoginOut 2009-10-16
  • 打赏
  • 举报
回复

/**
*
* @param from
* 发信人地址
* @param to
* 收信人地址
* @param subject
* 主题
* @param msg
* 正文
*
*/

public boolean sendMail(String from, String to, String subject, String msg) {
SimpleEmail email = new SimpleEmail();
// 邮件服务器
email.setHostName("smtp.163.com");
// 登录邮箱用户名和密码
email.setAuthentication("****", "****");
// 编码方式
email.setCharset("utf-8");
try {
email.setFrom(from);
email.addTo(to);
email.setSubject(subject);
email.setMsg(msg);
email.send();
log.error("==发送邮件成功,收件邮箱:" + to);
return true;
} catch (Exception e) {
log.error("==发送邮件失败,收件邮箱:" + to + "==", e);
}
return false;
}

可以发送邮件,但是不是企业用户,你在试试,我也是用163测试的
dinghun8leech 2009-10-16
  • 打赏
  • 举报
回复
回楼上,我用的就是163的付费企业邮箱
lytcd 2009-10-16
  • 打赏
  • 举报
回复
javaMail是肯定支持企业邮箱的。

outlook等软件可以正常发邮件,说明smtp/pop服务是开启的 :
这个不见得吧:用javaMail发邮件的时候是直接访问 smtp服务器,而很多服务器是不直接提供smtp服务的,像163就只对付费用户提供smtp服务。

这个异常没见过。

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧