2013-05-22 18 views
11

簡易Javaメールクライアントは、SSL上で動作する電子メールサーバーで正常に動作しています。しかし、Spring JavaMailSenderImplクラスから使用された場合、同じサーバーは動作しません。また、thunderbirdはメールサーバーをうまく動作させます。しかし、春には問題があります。Spring JavaMailSenderImplがSSLと連携していません

正常に動作する元のJavaコードがここにあります。ここ

final String username = "[email protected]"; 
    final String password = "password"; 

    Properties props = new Properties(); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtps.ssl.checkserveridentity", "true"); 
    props.put("mail.smtps.ssl.trust", "*"); 
    props.put("mail.smtp.host", "server.com"); 
    props.put("mail.smtp.port", "587"); 

    Session session = Session.getInstance(props, 
     new javax.mail.Authenticator() { 
     protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication(username, password); 
     } 
     }); 

    try { 

     Message message = new MimeMessage(session); 

     message.setFrom(new InternetAddress("[email protected]")); 

     message.setRecipients( Message.RecipientType.TO, 
           InternetAddress.parse("[email protected]")); 

     message.setSubject("Testing Subject"); 
     message.setText("Dear Mail Crawler, \n\n No spam to my email, please!"); 

     Transport.send(message); 

     System.out.println("Done"); 

    } catch (MessagingException e) { 
     throw new RuntimeException(e); 
    } 

は、電子メールの設定が含まれているapplicationContext.xmlを、

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
     <property name="javaMailProperties"> 
      <props> 
        <prop key="mail.smtp.starttls.enable">true</prop> 
        <prop key="mail.smtp.auth">true</prop> 
        <prop key="mail.smtps.ssl.checkserveridentity">true</prop> 
        <prop key="mail.smtps.ssl.trust">*</prop> 
      </props> 
     </property> 
     <property name="username" value="[email protected]" /> 
     <property name="password" value="password" /> 
     <property name="port"><value>587</value></property> 
     <property name="protocol"><value>smtp</value></property> 
     <property name="host" value="server.com"/>   
</bean> 

春JavaMailSenderImplを設定するための正しい方法は何ですか?

ご協力いただければ幸いです。

+2

smtpsとSTARTTLSを使用するようにJavaMailSenderImplを設定する方法の例として、実際には本当に便利です。それは、公式文書の不備を補うものです。 – Jimadilo

答えて

4

設定が正しい。それはうまく動作します。ユーザーID /パスワードを確認できますか?

+0

はIDとパスワードを確認しました。それは間違っていました。 Springの設定は正しいです。 – Nambi

+0

@Nambi投稿する春の設定は機能していますか?私はここで同じことをしようとしています... –

+0

はい、これは正しいです。私は最近それをテストしていませんが。 – Nambi

関連する問題