2015-05-21 8 views
7

Ich versuche, Mail mit einem Exchange-Server zu konfigurieren.Grails Mail Exchange Server-Konfiguration

Dies ist meine Konfiguration

grails { 
    mail { 
     host = "mail.xxx.xx.xx" 
     port = 443 
     username = "username" 
     password = "password" 
     props = [ "mail.smtp.auth":"true", 
        "mail.smtp.port":"443", 
        "mail.smtp.ssl.enable" :"true" 
       ] 
    } 
} 

ich die folgende Fehlermeldung erhalten

Message: org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Exception reading response; 
    nested exception is: 
    java.net.SocketException: Connection reset. Failed messages: javax.mail.MessagingException: Exception reading response; 

Ich weiß, dass es ein Problem mit den Requisiten, die ich ändern müssen, da diese Konfiguration auf meine E-Mails funktioniert App Ich weiß, dass der Port korrekt ist, es verwendet SSL.

Ich habe auch versucht, diese Requisiten

props = ["mail.smtp.timeout"    : "100000", 
      "mail.smtp.starttls.enable"  : "true", 
      "mail.smtp.EnableSSL.enable"  : "true", 
      "mail.transport.protocol"   : "smtps", 
      "mail.smtp.socketFactory.port" : "443", 
      "mail.smtp.auth"     : "true", 
      "mail.smtp.socketFactory.class" : "javax.net.ssl.SSLSocketFactory", 
      "mail.smtp.socketFactory.fallback": "false", 
      "mail.debug"      : "true"] 

Die Debug-Ergebnis es das:

DEBUG: JavaMail version 1.5.1 
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers 
DEBUG: Tables of loaded providers 
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]} 
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]} 
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map 
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle] 
DEBUG SMTP: useEhlo true, useAuth false 
DEBUG SMTP: trying to connect to host "xxx.xxx.xx.xx", port 443, isSSL true 
+0

Wie Sie SSL verwenden, sind Sie sicher, dass Ihr Java Keystore CA für den Aussteller des Zertifikats des Servers hat? – esauro

+0

Nein, kannst du mir mehr erklären, wie das geht? Was ich getan habe, ist nur die Daten aus meiner Mail-App zu dieser Konfiguration hinzuzufügen. –

+0

Können Sie versuchen, was ich gesagt habe? – esauro

Antwort

0

Es mir Problem als Zertifikat aussieht. Wenn Sie Zugriff auf einen Server nicht mit SSL haben, würde ich prüfen, dass zuerst, sonst sollten Sie:

  • das Zertifikat Emittent finden (wenn Sie nicht wissen es, Sie könnten openssl http://www.herongyang.com/Cryptography/OpenSSL-Certificate-Path-Validation-Tests.html überprüfen verwenden)
  • schauen Sie eine Zertifizierungsstelle in Ihrer Java-Schlüssel
    • suchen Sie entweder die Standard-Java-Schlüsselspeicher (How do I find out what keystore my JVM is using?) oder die, die Sie verwenden
    • Liste der Schlüsselspeicher und suchen Sie nach einem entsprechenden CA
    • Wenn ein CA ist dann Das Problem ist wahrscheinlich nicht das
    • Wenn es keine entsprechende CA gibt, dann besorgen Sie das CA-Zertifikat und importieren Sie es in Ihren Keystore, starten Sie den Server neu, und sollte wieder funktionieren.
+0

Hallo habe es versucht, es ist kein Zertifikat Problem, weil ich es habe. –

+0

Uhm, bist du sicher, dass dein Port 443 ist? Normalerweise wird dieser Port von sicheren Webservern verwendet. Der Standardport für Secure SMTP ist 465. – esauro

0

hatte ich das gleiche Problem eine Weile zurück. Wenn Sie versuchen, auf einen Exchange-Server innerhalb eines Netzwerks (einer Organisation) zuzugreifen, glaube ich, dass die Port-Nummer hier das Problem ist. Es könnte vom Netzwerkadministrator geändert worden sein.

Bitte wenden Sie sich an den Netzwerkadministrator und erklären Sie ihm, dass Sie versuchen, auf den Exchange Server zuzugreifen und den Benutzernamen, das Passwort und die entsprechende Portnummer benötigen. Authentifizierung kann optional sein, wenn die App im Haus ausgeführt wird, das heißt

props = ["mail.smtp.auth":"false"]

Ich hoffe, das hilft.

Verwandte Themen