2015-05-21 40 views
7

Próbuję skonfigurować pocztę za pomocą serwera Exchange.Grails konfiguracja serwera Exchange

To jest moja konfiguracja

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" 
       ] 
    } 
} 

Dostaję następujący błąd

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; 

Wiem, że to problem z rekwizytami, że muszę się zmienić, ponieważ ta konfiguracja działa na mojej poczty aplikacja. Wiem, że port jest poprawny, korzysta z protokołu SSL.

Próbowałem też za pomocą tych rekwizytów

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"] 

Wynik debugowania to tak:

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

Podczas korzystania z protokołu SSL, czy na pewno magazyn kluczy Java ma certyfikat CA dla wydawcy certyfikatu serwera? – esauro

+0

Nie, czy możesz mi wyjaśnić, jak to zrobić? to, co zrobiłem, to tylko dodać dane z mojej aplikacji pocztowej do tej konfiguracji. –

+0

Czy możesz spróbować tego, co powiedziałem? – esauro

Odpowiedz

0

Wydaje mi jako problem certyfikatów. Jeśli masz dostęp do serwera nie przy użyciu SSL, chciałbym przetestować, że po pierwsze, w przeciwnym razie należy:

+0

Cześć próbowałem, to nie jest problem z certyfikatem, ponieważ go mam. –

+0

Uhm, jesteś pewien, że twój port to 443? Zwykle ten port jest używany przez bezpieczne serwery WWW. Standardowy port bezpiecznego smtp to 465. – esauro

0

Miałem ten sam problem jakiś czas temu. Jeśli próbujesz uzyskać dostęp do serwera wymiany w sieci (organizacji), uważam, że numer portu jest tutaj problemem. Mogło to zostać zmienione przez administratora sieci.

Proszę skontaktować się z administratorem sieci i wyjaśnić mu, że próbujesz uzyskać dostęp do serwera Exchange i wymagać nazwy użytkownika, hasła i odpowiedniego numeru portu. Autoryzacja może być opcja, jeśli aplikacja jest prowadzony w domu, to znaczy

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

Mam nadzieję, że to pomaga.