Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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
Java Grails应用中的SMTP邮件失败(MS Exchange和无身份验证)_Java_Debugging_Grails_Smtp_Jakarta Mail - Fatal编程技术网

Java Grails应用中的SMTP邮件失败(MS Exchange和无身份验证)

Java Grails应用中的SMTP邮件失败(MS Exchange和无身份验证),java,debugging,grails,smtp,jakarta-mail,Java,Debugging,Grails,Smtp,Jakarta Mail,我们有一个Grails1.2.1应用程序,它使用来自邮件插件的代码。我们必须修改代码,因为我们需要连接到各种SMTP主机,而不仅仅是当时允许的插件 无论如何,多年来它一直运行良好,直到我们需要连接到配置为不使用smtp身份验证的Exchange服务器 通常,此配置设置可与Exchange配合使用: mail.smtp.auth=true;mail.smtp.socketFactory.port=2525;mail.smtp.socketFactory.fallback=true;mail.smt

我们有一个Grails1.2.1应用程序,它使用来自邮件插件的代码。我们必须修改代码,因为我们需要连接到各种SMTP主机,而不仅仅是当时允许的插件

无论如何,多年来它一直运行良好,直到我们需要连接到配置为不使用smtp身份验证的Exchange服务器

通常,此配置设置可与Exchange配合使用:

mail.smtp.auth=true;mail.smtp.socketFactory.port=2525;mail.smtp.socketFactory.fallback=true;mail.smtp.starttls.enable=true
在本例中,我使用:

mail.smtp.auth=false;mail.smtp.socketFactory.port=2525;mail.smtp.debug=true;mail.debug.auth=true
使用此特定smtp服务器,我们可以得到以下结果:

org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException
    at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:415)
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:341)
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:337)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
首先,如何显示调试消息,我似乎无法打开任何详细的日志记录

我在config.groovy中为以下模式启用了调试级别跟踪:

                ,"org.springframework.mail"
                ,"javax.mail"
第二,我有什么办法可以解决授权问题吗?我看到一个答案是使用javaMail的connect而不使用uid/密码,但是我们的应用程序调用

org.springframework.mail.MailSender.send(org.springframework.mail.SimpleMailMessage simpleMailMessage)

我通过了mail.smtp.auth=false并将userid和密码都设置为null的身份验证问题


获取调试级别跟踪输出未成功

设置mail.debug=true应该可以获得调试输出。如果您使用的是JavaMail 1.4.7,那么应该能够使用com.sun.mail.smtp记录器获得调试输出;查看底部的滚动。使用springframework,因此我假设logger类将是org.springframework.mail.javamail.JavaMailSenderImpl,但尽管org.springframework.mail的日志记录处于调试级别。*我在logsorg.springframework.mail中没有看到任何内容可能控制特定于Spring的类所做的日志记录,但是它不应该对JavaMail类有任何影响。您是否尝试过com.sun.mail.smtp?