JavaMail с MS Exchange: нет механизмов аутентификации, поддерживаемых как сервером, так и клиентом

Я уже несколько дней пытаюсь отправить почту из приложения Grails, но безуспешно. Я использую:

  • grails 1.3.7
  • плагин mail 1.0
  • плагин spring-security-core 1.2.6
  • tomcat 7.0.23

В частности, я пытаюсь отправить почту с помощью Exchange из приложения, развернутого на сервере Tomcat, через порт 25 без аутентификации и без SSL.

Я попытался отправить сообщение с помощью telnet с виртуальной машины VMWare, на которой развернуто приложение, и оно получилось.

Это мой класс для отправки писем:

public boolean sendMessage(String to, String msgSubject, String msgText) 
{
    String host = "mail.mydomain.com";
    String username = "myuser@mydomain.com"; // your authsmtp username
    String password = "mypassword" // your authsmtp password
    String from = "myuser@mydomain.com";

    Properties props = System.getProperties();
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", username);
    props.put("mail.smtp.password", password);
    props.put("mail.smtp.port", "25"); // thish is the port recommended by authsmtp
    props.put("mail.smtp.auth", "false");

    Session session = Session.getDefaultInstance(props, null);
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));

    InternetAddress to_address = new InternetAddress(to);
    message.addRecipient(Message.RecipientType.TO, to_address);

    message.setSubject(msgSubject);
    message.setText(msgText);
    Transport transport = session.getTransport("smtp");
    transport.connect(host, username, password);
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();
    return true;
}

Это трассировка стека ошибок:

javax.mail.AuthenticationFailedException: No authentication mechansims supported by both server and client

at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:590)

at javax.mail.Service.connect(Service.java:291)

at javax.mail.Service.connect(Service.java:172)

at javax.mail.Service$connect.call(Unknown Source)

at org.helpdesk.MymailService.sendMessage(MymailService.groovy:37)

at org.helpdesk.MymailService$sendMessage.call(Unknown Source)

at org.helpdesk.RequestController$_closure13.doCall(RequestController.groovy:247)

at org.helpdesk.RequestController$_closure13.doCall(RequestController.groovy)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Я прочитал несколько десятков сообщений, посвященных таким проблемам, но мне все еще не удалось решить проблему. Любая помощь приветствуется.

* РЕДАКТИРОВАТЬ: * Возможно ли возникновение проблем с отправкой писем с использованием javaMail с SMTP-сервером Exchange при отсутствии аутентификации?

9
задан Vadzim 11 December 2015 в 09:03
поделиться