javaMail通过MSExchange发送电子邮件

时间:2011-09-02 14:28:41

标签: exchange-server javamail

我有一个使用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服务器上的身份验证方法,我明白了:

  • 250-svrexch.mydomain.com您好[192.168.1.10]
  • 250-SIZE 10485760
  • 250 PIPELINING
  • 250 DSN
  • 250 ENHANCEDSTATUSCODES
  • 250 STARTTLS
  • 250-AUTH
  • 250-8BITMIME
  • 250 BINARYMIME
  • 250 CHUNKING
  • 250 XEXCH50
  • 250 XSHADOW

0 个答案:

没有答案