jodd 发送邮件 使用stmp.qq.com 没有问题,但是stmp.163.com就是发不出去!

xing8831925 2012-10-09 05:20:54
如题,jodd 发送邮件 使用stmp.qq.com 没有问题,但是stmp.163.com就是发不出去!
报错为,说是stmp的454端口不通,但是stmp用的默认端口是465哇,我真的很奇怪。 求jodd高手解答
错误为:
Exception in thread "main" jodd.mail.MailException: Unable to connect; <--- javax.mail.MessagingException: 454 Command not permitted when TLS active

at jodd.mail.SendMailSession.open(SendMailSession.java:46)
at common.utils.EmailTest.sendMailBySTMP163(EmailTest.java:78)
at common.utils.EmailTest.main(EmailTest.java:40)
Caused by: javax.mail.MessagingException: 454 Command not permitted when TLS active

at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1795)
at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1644)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:534)
at javax.mail.Service.connect(Service.java:313)
at javax.mail.Service.connect(Service.java:172)
at javax.mail.Service.connect(Service.java:121)
at jodd.mail.SendMailSession.open(SendMailSession.java:44)
... 2 more
---[cause]------------------------------------------------------------------------
javax.mail.MessagingException: 454 Command not permitted when TLS active

at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1795)
at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1644)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:534)
at javax.mail.Service.connect(Service.java:313)
at javax.mail.Service.connect(Service.java:172)
at javax.mail.Service.connect(Service.java:121)
at jodd.mail.SendMailSession.open(SendMailSession.java:44)
at common.utils.EmailTest.sendMailBySTMP163(EmailTest.java:78)
at common.utils.EmailTest.main(EmailTest.java:40)
...全文
37407 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xing8831925 2012-10-12
  • 打赏
  • 举报
回复
多谢高手。 嘿嘿 散花喽。[Quote=引用 4 楼 的回复:]

试了下你上面的代码,没啥问题。呵呵。

454并不是指端口号,提示的错误说的是SMTP服务器返回了一个提示,当TLS激活的时候(你用了SslServer),你给的某个Command命令是不能执行的。

可以试试看用new SmtpServer()
[/Quote]
xing8831925 2012-10-12
  • 打赏
  • 举报
回复
不成的。 第二个参数是邮箱地址...[Quote=引用 3 楼 的回复:]

SendMailSession mailSession = new SmtpSslServer("smtp.163.com","user@163.com", "password").createSession();


user@163.com改为user
[/Quote]
xing8831925 2012-10-12
  • 打赏
  • 举报
回复
163上就是说是smtp.163.com[Quote=引用 2 楼 的回复:]

163改了配置你上163找找,这些网络邮箱好像多有各自独特的配置
[/Quote]
s478853630 2012-10-10
  • 打赏
  • 举报
回复
一般发邮件的功能,公司都有自己的服务器,
要想用人家的服务器发邮件,就得按人家的规定来,

你应该先去了解163服务器的配置
nickycheng 2012-10-10
  • 打赏
  • 举报
回复
试了下你上面的代码,没啥问题。呵呵。

454并不是指端口号,提示的错误说的是SMTP服务器返回了一个提示,当TLS激活的时候(你用了SslServer),你给的某个Command命令是不能执行的。

可以试试看用new SmtpServer()
yeserph 2012-10-10
  • 打赏
  • 举报
回复
SendMailSession mailSession = new SmtpSslServer("smtp.163.com","user@163.com", "password").createSession();


user@163.com改为user
  • 打赏
  • 举报
回复
163改了配置你上163找找,这些网络邮箱好像多有各自独特的配置
xing8831925 2012-10-09
  • 打赏
  • 举报
回复
Email email = Email.create()
.from("user@163.com")
.to("user1@m8book.cn")
.subject("test")
.addText("ab你好!cd")
.addHtml("<html><META http-equiv=Content-Type content=\"text/html; charset=utf-8\">" +
"<body><h1>你好v</h1></body></html>")
.embedFile("d:\\huh2.jpg")
.attachFile("d:\\cover.jpg");


SendMailSession mailSession = new SmtpSslServer("smtp.163.com","user@163.com", "password").createSession();
mailSession.open();
mailSession.sendMail(email);
mailSession.close();
System.out.println("发送成功!...");

67,512

社区成员

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

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