Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email Grails邮件交换服务器配置_Email_Grails_Smtp - Fatal编程技术网

Email Grails邮件交换服务器配置

Email Grails邮件交换服务器配置,email,grails,smtp,Email,Grails,Smtp,我正在尝试使用Exchange服务器配置邮件 这是我的配置 grails { mail { host = "mail.xxx.xx.xx" port = 443 username = "username" password = "password" props = [ "mail.smtp.auth":"true", "mail.smtp.port":"443",

我正在尝试使用Exchange服务器配置邮件

这是我的配置

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"
                 ]
    }
}
我得到以下错误

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;
我知道这是一个道具的问题,我必须改变,因为这种配置在我的邮件应用程序上工作。 我知道端口是正确的,它使用SSL

我也试着使用这些道具

    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"]
调试结果如下所示:

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

在我看来,这是一个证书问题。如果您可以访问不使用SSL的服务器,我将首先测试它,否则您应该:

  • 查找证书颁发者(如果您不知道,可以使用openssl验证)
  • 在java密钥库中查找CA
    • 找到默认java密钥库()或您正在使用的密钥库
    • 列出密钥库并查找相应的CA
    • 如果有CA,那么问题不太可能是这个
    • 如果没有相应的CA,则获取CA证书并将其导入密钥库,重新启动服务器,然后应再次工作

    • 不久前,我也遇到了同样的问题。如果您试图访问网络(组织)中的exchange服务器,我认为端口号是问题所在。它可能已被网络管理员更改

      请与网络管理员联系,并向他解释您正在尝试访问Exchange服务器,需要用户名、密码和相关端口号。如果应用程序在内部运行,则身份验证可能是可选的,即

      props=[“mail.smtp.auth”:“false”]


      我希望这有帮助

      当您使用SSL时,您确定您的java密钥库具有服务器证书颁发者的CA吗?不,您能向我详细解释如何做到这一点吗?我所做的只是将我的邮件应用程序中的数据添加到此配置中。你能试试我说的吗?嗨,我试过了,这不是证书问题,因为我有。嗯,你确定你的端口是443吗?通常,该端口由安全的web服务器使用。安全smtp的标准端口是465。