JavaMail avec MS Exchange: Aucune authentification n'mechansims prise en charge par le serveur et le client

J'ai essayé pendant des jours maintenant pour envoyer du courrier à partir de Grain de l'application et en vain. Je suis à l'aide d':

  • graal 1.3.7
  • mail 1.0 du plugin
  • printemps-sécurité-core 1.2.6 plugin
  • tomcat 7.0.23

Specifficaly je vais essayer d'envoyer un mail avec Exchange à partir d'une application déployée sur le serveur Tomcat trought le port 25 sans authentification, pas de SSL.

J'ai essayé d'envoyer un message avec telnet à partir de la machine virtuelle VMWare sur lesquels l'application est déployée et il a obtenu auge.

C'est ma classe pour l'envoi de mails:

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

    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;
}

Il s'agit d'erreur de trace de pile:

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)

J'ai lu quelques dizaines de postes compte tenu des problèmes comme ça, mais je n'ai toujours pas résolu le problème. Toute aide est appréciée.

*EDIT:*Est-il possible qu'il y ait quelques problèmes d'envoi de mails à l'aide de javaMail avec Exchange server SMTP lorsqu'il n'y a pas d'authentification?

Vous devez configurer toutes les propriétés comme "mail.smtp.accueil" en Config.groovy
Mais comment dire à ma méthode SendMessage de prendre des options de configuration de messagerie de Config.groovy?
Dois-je configurer Tomcat pour permettre à l'emailing?
Le courrier plugin prend automatiquement les paramètres de Config.groovy. Vous n'avez pas besoin de faire une configuration de Tomcat. Avez-vous lu les docs pour le courrier plugin?
Oui. J'ai lu les documents mais je ne peux pas le faire fonctionner. Peut-être que j'ai oublié quelque chose compte tenu de configuration du serveur Exchange. J'ai réussi à envoyer un mail à l'aide de Gmail sans trop de mal. Mais l'utilisation de serveur Exchange de l'entreprise pas de chance à tous. J'ai donc été à chasser ma queue pendant un certain temps maintenant.

OriginalL'auteur drago | 2011-12-23