私は次のような EmailService クラスを持っています:
package com.helios.service.mail;
import java.util.ArrayList;
import java.util.List;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.internet.AddressException;
import javax.mail.internet.MimeMessage;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailException;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.mail.javamail.JavaMailSender;
import scala.actors.threadpool.Arrays;
import com.helios.util.PropertiesUtil;
/**
* The e-mail service contains all you need in order to send E-Mails
* successfully
*/
@Service
public class EmailService
{
// ------------------------------------------------------------------------
// members
// ------------------------------------------------------------------------
// log4j...
static final Logger logger = Logger.getLogger(EmailService.class);
@Autowired
private JavaMailSender mailSender;
// ------------------------------------------------------------------------
// public usage
// ------------------------------------------------------------------------
/**
* Send an Email the cool way!
* @param recipients
* @param subject
* @param text
* @param html
*/
public void sendEmail(List<String> recipients,String subject,
String text,boolean html)
throws NoSuchProviderException,AddressException,MessagingException {
try {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
messageHelper.setFrom(PropertiesUtil.getProperty("mail.defaultsender"));
messageHelper.setTo(recipients.toArray(new String[recipients.size()]));
messageHelper.setSubject(subject);
messageHelper.setText(text, html);
mailSender.send(mimeMessage);
}
catch (MailException ex) {
logger.error("Fail: "+ex.getMessage());
}
}
// ------------------------------------------------------------------------
// private usage
// ------------------------------------------------------------------------
// ------------------------------------------------------------------------
// GETTER & SETTER
// ------------------------------------------------------------------------
}
Bean は、Amazon SES 経由で送信するように mailSender を設定するために使用されます
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="email-smtp.us-east-1.amazonaws.com" />
<property name="port" value="465" />
<property name="protocol" value="smtps" />
<property name="username" value="..." />
<property name="password" value="..." />
<property name="javaMailProperties">
<props>
<prop key="mail.smtps.auth">true</prop>
<prop key="mail.smtp.ssl.enable">true</prop>
<prop key="mail.transport.protocol">smtps</prop>
<prop key="mail.debug">true</prop>
</props>
</property>
</bean>
ここで、JDK1.6 で sendEmail メソッドを実行すると、正常に動作します。1.7でまったく同じコードを実行すると、機能しません。
問題がどこにあるのかわかりません。何か考えはありますか?
ありがとう!