1

私は次のような 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でまったく同じコードを実行すると、機能しません。

問題がどこにあるのかわかりません。何か考えはありますか?

ありがとう!

4

0 に答える 0