2013-05-22 15 views
11

Prosty klient Java Mail działa poprawnie z serwerem poczty e-mail działającym na protokole SSL. Ale ten sam serwer nie działa, gdy jest używany z klasy Spring JavaMailSenderImpl. Również Thunderbird działa dobrze na serwerze pocztowym. Ale wiosna ma problemy.Spring JavaMailSenderImpl nie działa z SSL

Oto oryginalny kod Java, który działa poprawnie.

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); 
    } 

oto applicationContext.xml że zawiera konfigurację e-mail,

<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> 

Jaki jest właściwy sposób skonfigurować Wiosna JavaMailSenderImpl?

Każda pomoc będzie głęboko doceniona.

+2

Po prostu jako przykład, jak skonfigurować JavaMailSenderImpl do używania smtps i STARTTLS, jest to naprawdę przydatne. To rekompensuje braki w oficjalnej dokumentacji. – Jimadilo

Odpowiedz

4

Konfiguracja jest prawidłowa. To działa dobrze. Czy możesz sprawdzić identyfikator użytkownika/hasło?

+0

sprawdził identyfikator i hasło. To było złe. Konfiguracja Spring jest poprawna. – Nambi

+0

@Nambi konfiguracja wiosna, które opublikujesz działa? Próbuję tego samego tutaj i nie działa ... –

+0

tak, to prawda. chociaż ostatnio tego nie testowałem. – Nambi

Powiązane problemy