2009-12-24 130 views
1

我用springmail從我的SMTP服務器發送電子郵件與以下配置:春 - 春季配置電子郵件

<bean id="springEmailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
    <property name="defaultEncoding" value="UTF-8"/> 
    <property name="host" value="mail.myserver.com"/> 
    <property name="port" value="25"/> 

    <property name="username" value="username"/> 
    <property name="password" value="password"/> 
    <property name="javaMailProperties"> 
     <value> 
      mail.debug=true 
      mail.smtp.auth=true 
      mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory 
      mail.smtp.socketFactory.fallback=false 
     </value> 
    </property></bean> 

但它拋出「javax.net.ssl.SSLException:無法識別的SSL消息,純文本連接? 「 我已經用端口465上的gmail測試了這個配置,它工作。

請告訴我我做錯了什麼。謝謝

+0

有這個問題的答案 http://stackoverflow.com/questions/8917400/how-to-configure-spring-javamailsender-for-ses-using-smtp – 2013-10-08 15:28:12

回答

1

也許你不應該使用SSL。郵件服務器是否配置爲接受加密郵件?看起來它想要純文本。

我會回到reference docs,看看是否會工作。

+0

謝謝 我刪除這些屬性 mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory mail.smtp.socketFactory.fallback = false 但它給了我另一個exeption:MessagingException:[EOF] – robinmag 2009-12-24 03:57:50

5

它看起來像您的SMTP服務器需要SSL(安全)連接。請參閱下面的示例以瞭解如何爲Gmail進行配置,這也需要SSL。請注意smtps協議和額外的屬性。

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
    <property name="host" value="smtp.gmail.com" /> 
    <property name="port" value="465" /> 
    <property name="protocol" value="smtps" /> 
    <property name="username" value="user"/> 
    <property name="password" value="password"/> 
    <property name="javaMailProperties"> 
     <props> 
      <prop key="mail.smtps.auth">true</prop> 
      <prop key="mail.smtps.starttls.enable">true</prop> 
      <prop key="mail.smtps.debug">true</prop> 
     </props> 
    </property> 
</bean> 
0

我會嘗試刪除所有javaMailProperties以及用戶名和密碼屬性。

正如duffymo指出的那樣,您可能不應該使用SSL(端口25是非SSL SMTP端口)。大多數SMTP服務器也不需要認證(除非你明確地配置了它)。