2015-09-25 43 views
2

我有一個電子郵件ssl客戶端的zimbra郵件服務器,在Windows上完美工作,但我得到了一個失敗的身份驗證在Linux上,我已經驗證,所有的網絡conf。 DNS,端口和防火牆是會正確Java郵件客戶端不能在Linux上工作

屬性:獲取會話

props.put("mail.smtps.host", "my.mail.server"); 
props.put("mail.smtps.host", "my.mail.server"); 
props.put("mail.smtps.starttls.enable", "true"); 
props.put("mail.smtps.port", "465"); 
props.put("mail.smtps.auth", "true"); 
props.put("mail.smtps.ssl.trust", "my.mail.server"); 

Session session = Session.getDefaultInstance(props); 

交通:

Transport t = session.getTransport("smtps"); 
t.connect("user", "pass"); 
t.sendMessage(message, message.getAllRecipients()); 

東西使用時得到了我的注意調試,是郵件中的後綴響應

的Windows調試日誌:

DEBUG:setDebug:JavaMail的版本1.4.3 DEBUG:getProvider()返回 javax.mail.Provider [交通,SMTPS,com.sun.mail.smtp.SMTPSSLTransport ,Sun Microsystems,Inc] DEBUG SMTP:useEhlo true,useAuth true DEBUG SMTP: 嘗試連接到主機「my.mail.server」,端口465,isSSL爲true 220 my.mail.server ESMTP ready。 DEBUG SMTP:連接到主機 「my.mail.server」,端口:465

同時在Linux上我得到這個:

DEBUG:setDebug:JavaMail的版本1.4.3 DEBUG: getProvider()返回 javax.mail.Provider [TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems,Inc] DEBUG SMTP:useEhlo true,useAuth true DEBUG SMTP: 試圖連接到主機「我的.mail.server「,端口465,isSSL爲真220 my.mail.server ESMTP後綴 DEBUG SMTP:連接到主機 「my.mail.server」,端口:465

我希望得到任何幫助。

回答

0

我發現問題,服務器認證與本地和外部訪問不同,我們在網絡外部使用了windows服務器,而在內部網上使用了linux服務器。

事實上,這是郵件服務器上的配置錯誤

現在,對於本地和公共訪問,java郵件客戶端保持不變。

+0

我無法提供具體相同配置的答案,因爲此線程是關於郵件客戶端的。我已經回答,只是爲了向開發人員提供足夠的信息。 –

1

調試消息的差異並不顯着。這只是兩個(本地)郵件服務器在「連接問候回覆」行中放置的區別。例如,運行PostfixMTA Linux服務器通常會說:

220 smtp.example.com ESMTP Postfix 

ESMTP spec說:

「SMTP服務器實現可以包括其 軟件和版本信息鑑定220代碼後的連接問候回覆 ,允許更高效的隔離 並修復任何問題的做法實現可以爲 SMT P服務器來禁用軟件和版本通告,其中 會導致安全問題。「

真正的問題將是另一回事。

如果我試圖調試這一點,我將通過查看MTA日誌,看看如果他們說,爲什麼會被關閉開始。我還會檢查用戶/密碼是否正確以及MTA是否已正確配置以允許您嘗試執行的操作。

+0

我做了一些研究,zimbra使用postfix mta,但我不明白同一個smtp客戶端如何在Windows上工作。也許在Linux服務器上的錯誤配置可能會影響? –

+0

可能。但這是猜測。看看日誌文件。 –