2013-04-02 54 views
1

我們有一個使用郵件插件代碼的Grails 1.2.1應用程序。我們必須修改代碼,因爲我們需要連接到各種SMTP主機,而不僅僅是當時允許的插件。SMTP郵件在Grails應用程序中失敗(MS Exchange和無身份驗證)

無論如何,它一直工作正常多年,直到我們需要連接到配置了沒有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" 

2,任何選項,我可以嘗試讓過去的權威性問題?我已經看到了使用JavaMail的connect()未經UID /密碼一個答案,但我們的應用程序調用

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

設置「mail.debug = true」應該讓您調試輸出。如果您使用JavaMail 1.4.7,則應該能夠使用com.sun.mail.smtp Logger獲取調試輸出;請參閱[com.un.mail.smtp包的javadocs](http://javamail.kenai.com/nonav/javadocs/com/sun/mail/smtp/package-summary.html)(滾動到底部) 。 –

+0

使用彈簧框架,所以我假設記錄器類將是'org.springframework.mail.javamail.JavaMailSenderImpl'但是儘管在調試級別爲「org.springframework.mail。*」記錄日誌,我在日誌中看不到任何內容 – Sunny

+0

org。 springframework.mail可能會控制Spring特定類所做的日誌記錄,但它不應該對JavaMail類產生任何影響。你有沒有試過com.sun.mail.smtp? –

回答

0

我過去與mail.smtp.auth = false,並同時設置用戶名和密碼的身份驗證問題爲空。

獲得調試級別跟蹤輸出沒有成功