我有一个使用javaMail库发送邮件的网站,直到我们将邮件服务更改为MSExchange 才能正常工作。
我重新编译了项目,在我的计算机中设置了新的主机配置和测试,并使用GlassFish正常工作,然后我尝试在glassfish中测试服务器。 当我在生产中部署应用程序不起作用时,日志不会显示任何错误,开发/测试环境和生产之间存在一些差异,第一个开发和测试是通过网络10.226.xxx.xxx和生产192.168 .xxx.xxx和生产中我们有一个tomcat。
我在生产服务器中发送了一封电子邮件,使用telnet连接到smtp,工作正常。
我真的输了,我不知道怎么解决它(以及什么)...
try {
Byte newMailStatus = 0;
SimpleMailMessage msg = new SimpleMailMessage(this.templateMessage);
msg.setSubject("Hi!");
msg.setText("xxx");
try {
this.mailSender.send(msg);
newMailStatus = 1;
} catch (MailException ex) {
log.error(ex.getMessage());
newMailStatus = 0;
}
ALimitResult result = new ALimiteResult();
result.setStatus(newMailStatus);
getModel().put("model", result);
ModelAndView modelView = new ModelAndView("EmailView", getModel());
return modelView;
} catch (Exception e) {
log.error(e.getMessage());
return null;
}
(禁用SMTP服务器身份验证)
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="exchange.mydomain.com" />
<property name="username" value="email@mydomain.com" />
<property name="password" value="helpme" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">false</prop>
</props>
</property>
</bean>
新:在生产服务器中,我收到此错误:
2011-09-07 10:30:58,248 ERROR [xxx-myController] - 身份验证失败;嵌套异常是javax.mail.AuthenticationFailedException:服务器和客户端都不支持身份验证机制
我做了一个“ehlo”来获取SMTP服务器上的身份验证方法,我明白了: