2011-06-17 76 views
0

我需要使用自定義SSLFactory類來避免郵件服務器上的自簽名證書出現問題。我試圖使用下一個配置,它適用於Gmail。但如果我切換到我的郵件服務器,它不再工作,並在wireshark我發現錯誤TLSv1記錄層:警報(級別:致命,說明:證書未知)。我嘗試設置自定義sslfactory(替換javax.net.ssl.SSLSocketFactory),但看起來像這樣的更改不會影響JavaMailSenderImpl的的行爲。如何將自定義SSLSocketFactory類與org.springframework.mail.javamail.JavaMailSenderImpl一起使用

郵件服務器支持smtps協議並且需要驗證。

<bean id="userAuthorizationManager" class="com.mypackage.manage.SimpleUserAuthorizationManagerImpl"> 
    <property name="mailSender" ref="mailSender" /> 
    <property name="velocityEngine" ref="velocityEngine" /> 
    <property name="from" value="address" /> 
    <property name="authorizationAddress" value="some text" /> 
    <property name="subject" value="some text" /> 
</bean> 

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
    <property name="host" value="smtp.gmail.com" /> 
    <property name="port" value="465" /> 
    <property name="username" value="user" /> 
    <property name="password" value="pass" /> 
    <property name="protocol" value="smtps" /> 

    <property name="javaMailProperties"> 
     <props> 
      <prop key="mail.smtp.auth">true</prop> 
      <prop key="mail.smtp.connectiontimeout">5000</prop> 
      <prop key="mail.smtp.sendpartial">true</prop> 
      <prop key="mail.smtp.userset">true</prop> 
      <prop key="mail.mime.charset">UTF-8</prop> 
      <prop key="mail.smtp.isSecure">true</prop> 
      <prop key="mail.smtp.requiresAuthentication">true</prop> 
      <prop key="mail.smtp.port">465</prop> 
      <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> 
      <prop key="mail.smtp.socketFactory.fallback">false</prop> 
      <prop key="mail.smtp.starttls.enable">true</prop> 
      <prop key="mail.debug">true</prop> 
     </props> 
    </property> 
</bean> 

<bean id="velocityEngine" 
     class="org.springframework.ui.velocity.VelocityEngineFactoryBean"> 
    <property name="velocityProperties"> 
     <value> 
      resource.loader=class 
       class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader 
     </value> 
    </property> 
</bean> 

如果您需要任何其他我很樂意提供它。

任何幫助將不勝感激。

問候, Tiho

回答

1

最後我找到了一個解決方案。我犯了一個錯誤。

而不是stmps我用SMTP鍵名的性質,而我用SMTPS作爲一個協議,你可以在我的問題看。

Regards, Tiho

相關問題