JavaMail mit MS Exchange: Keine Authentifizierungsmechanismen, die sowohl vom Server als auch vom Client unterstützt werden

8

Ich habe schon seit Tagen versucht, Mails aus der Grails-Anwendung zu verschicken. Ich benutze:

  • grails 1.3.7
  • mail 1.0 plugin
  • spring-security-core 1.2.6 plugin
  • Tomcat 7.0.23

Speziell versuche ich, E-Mail mit Exchange von Anwendung zu senden, die auf Tomcat-Server über Port 25 ohne Authentifizierung, ohne SSL bereitgestellt wird.

Ich habe versucht, eine Nachricht mit telnet von der virtuellen VMWare-Maschine zu senden, auf der die App installiert ist, und es ging durch.

Dies ist meine Klasse für das Versenden von Mails:

%Vor%

Dies ist ein Fehler-Stack-Trace:

%Vor%

Ich habe ein paar Dutzend Posts gelesen, in denen ich Probleme wie diese sehe, aber ich habe es immer noch nicht geschafft, das Problem zu lösen. Jede Hilfe wird geschätzt.

* BEARBEITEN: * Ist es möglich, dass es Probleme beim Senden von Mails mit javaMail mit Exchange Server SMTP gibt, wenn keine Authentifizierung vorhanden ist?

    
drago 23.12.2011, 11:49
quelle

6 Antworten

17

Wenn Sie versuchen, eine Verbindung zu Ihrem Mail-Server ohne -Authentifizierung herzustellen, rufen Sie die connect-Methode auf, die nicht einen Benutzernamen und ein Passwort annimmt. Wenn Sie ihm einen Benutzernamen und ein Passwort übergeben, denkt er, dass Sie sich wirklich authentifizieren möchten, und da er keinen Authentifizierungsmechanismus finden kann, der vom Server unterstützt wird, schlägt er fehl.

    
Bill Shannon 23.12.2011, 21:45
quelle
14

In meinem Fall musste ich die Eigenschaft

festlegen %Vor%

bis "false"

(zusätzlich zum Hinzufügen der Eigenschaft "mail.smtp.auth" zu "false" , was jedoch gemäß dieser Link )

Vor dem Festlegen von "mail.smtp.ehlo" auf "false" habe ich die folgende Debug-Ausgabe gesehen (aktiviert durch Setzen der Eigenschaft "mail.debug" auf "true" ):

%Vor%

und dann erhalten Sie die gleiche javax.mail.AuthenticationFailedException .

(In diesem Fall war der SMTP-Server ein Microsoft-Server)

    
Andre Holzner 31.07.2014 09:36
quelle
3

Nun, es sieht so aus, als hätte ich wenig Probleme. Zunächst wurde Exchange nicht ordnungsgemäß eingerichtet. Und dann scheint es, dass ich alle möglichen Konfigurationen ausprobiert habe, aber die richtige. Das funktioniert:

%Vor%

Der letzte Hinweis war Bill Shannons Post. Danke Bill!

    
drago 27.12.2011 08:59
quelle
1
  1. Überprüfen Sie, ob der Server, auf den Sie treffen, eine Authentifizierung vornimmt oder nicht. mehr dazu im Code.

  2. Legen Sie einen mail.debug in die Eigenschaften zu wissen, was genau zwischen Ihrem Code und dem passiert Mail-Server. mehr dazu im Code.

Hier ist ein einfacher Code, der für mich mit dem Mailserver meiner Firma gut funktioniert:

%Vor%     
Sadique Khan 26.05.2014 10:42
quelle
0

Hier ist meine Lösung, vielleicht ist es nicht der beste Weg, aber es funktioniert für mich ...

in der mail-config.xml:

%Vor%

und hier ist die Einstellung:

%Vor%

und schließlich der Code:

%Vor%     
Ethan CF Chen 20.02.2014 11:12
quelle
0

Wenn Sie möchten, dass sich Ihre Anwendung am SMTP-Server anmeldet (da Sie Authentifizierungsdetails angeben). Ändere einfach

%Vor%

bis

%Vor%     
Rohin 08.10.2015 12:33
quelle