我在GlassFish 3.1.1中配置JavaMail会话以向Exim 4.76邮件服务器发送电子邮件时遇到问题。 GlassFish和Exim都在同一个CentOS服务器上运行。
这是我在GlassFish中的JavaMail会话配置:
JNDI Name: mail/mailSession
Mail Host: localhost
Default User: glassfish
Default Sender Address: glassfish@mycompany.com
Status: Enabled is checked
Store Protocol: IMAP
Store Protocol Class: com.sun.mail.imap.IMAPStore
Transport Protocol: SMTP
Transport Protocol Class: com.sun.mail.smtp.SMTPTransport
以下是GlassFish服务器日志的例外情况:
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 authentication required
at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1835)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1098)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
在启动GlassFish的同一个Unix用户帐户中,我可以使用以下命令发送电子邮件:
$ exim -v -odf dummy@gmail.com
This is a test message from server.
.
所以我假设我的Exim邮件服务器运行正常,但是我的GlassFish?
知道可能出现什么问题?
答案 0 :(得分:0)
您需要将会话配置为使用SMTP身份验证。见this FAQ entry。您可以在GlassFish中配置邮件会话时设置会话属性,并且在连接到服务器时需要提供用户名和密码。