Spring APIによるメール送信(楽バイトjava,楽バイトアーキテクチャ)


詳細Springメールの送信方法
環境準備
Mavenプロジェクトを作成しpom.xmlファイルに依存を追加


    org.springframework
    spring-context
    5.2.4.RELEASE



    org.springframework
    spring-context-support
    5.2.4.RELEASE


    org.springframework
    spring-test
    5.2.4.RELEASE
    test



    com.sun.mail
    javax.mail
    1.6.2

メール送信beanの設定
ここでxmlプロファイルでメール送信に対応するbeanラベルを設定



    
    

    
    
        
        
        
        
        
    

    
    
        
        
    



インタフェースと実装クラスの定義
インタフェースの定義
package com.xxxx.springMail;

/**
 *     
 */
public interface OrderManager {
    void placeOrder();
}

実装クラスの定義
package com.xxxx.springMail;

import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

@Service
public class SimpleOrderManager implements OrderManager {

    @Resource
    private JavaMailSenderImpl mailSender;
    @Resource
    private SimpleMailMessage templateMessage;

    @Override
    public void placeOrder() {
        //       
        SimpleMailMessage msg = new SimpleMailMessage(this.templateMessage);
        //             
        msg.setTo("        ");
        //       
        msg.setText("Hello Spring Mail");
        try{
            //     
            this.mailSender.send(msg);
        } catch (MailException ex) {
            System.err.println(ex.getMessage());
        }
    }
}

メール送信テスト
/**
  *      
  * @param args
  */
public static void main(String[] args) {
    ApplicationContext ac=new ClassPathXmlApplicationContext("spring.xml");
    SimpleOrderManager simpleOrderManager = 
        (SimpleOrderManager) ac.getBean("simpleOrderManager");
    simpleOrderManager.placeOrder();
}

添付ファイルの送信
/**
  *           
  * @param args
  * @throws MessagingException
  */
public static void main(String[] args) throws MessagingException {
    ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
    JavaMailSender mailSender= (JavaMailSender) ac.getBean("mailSender");
    MimeMessage message= mailSender.createMimeMessage();
    message.setSubject("spring_mail"); //     
    //             
    MimeMessageHelper helper = new MimeMessageHelper(message,true,"utf-8");
    helper.setTo(new InternetAddress("        "));//     
    helper.setText("Thank you for ordering!"); //     
    helper.setFrom("        "); //    
    //     
    File file = new File("C:\\work\\    .txt");
    //     
    helper.addAttachment(file.getName(), file);
    //     
    mailSender.send(message);
}