2013-05-22 3 views
11

Простой клиент Java Mail отлично работает с сервером электронной почты, работающим на 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> 

Что такое правильный способ настроить Spring JavaMailSenderImpl?

Любая помощь будет глубоко оценена.

+2

Просто как пример настройки JavaMailSenderImpl для использования smtps и STARTTLS, это действительно очень полезно. Это компенсирует недостатки официальной документации. – Jimadilo

ответ

4

Конфигурация верна. Он работает нормально. Вы можете проверить идентификатор пользователя/пароль?

+0

проверял идентификатор и пароль. Это было не правильно. Конфигурация пружины правильная. – Nambi

+0

@ Nambi конфигурация пружины, которую вы отправляете, работает? Я пробую то же самое здесь и не работаю ... –

+0

да, это правильно. хотя я не тестировал его недавно. – Nambi

Смежные вопросы