SpringbootからAWS SESでメール送信

どうも、前回のつづき、ざわです。
今回はSpringbootからAWS SESを介してメール送信を行います。

build.gradleの修正

以下の依存関係を追加します。

dependencies {
(省略)
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-mail', version: '1.5.1.RELEASE'
    compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-aws', version: '1.2.2.RELEASE'
    compile group: 'com.amazonaws', name: 'aws-java-sdk-ses', version: '1.11.289'
}

application.ymlの修正

以下を追加する。リージョンやアクセスキーは環境に合わせます。

cloud:
  aws:
    region:
      static: us-east-1
    credentials:
      accessKey: XXXX
      secretKey: XXXX

ソース修正

設定クラス

import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;


@Configuration
public class MailConfig {

    @Autowired
    AmazonSimpleEmailService amazonSimpleEmailService(AmazonSimpleEmailService amazonSimpleEmailService) {
        return amazonSimpleEmailService;
    }
}

通知処理クラス

以下のイメージで実装します。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.stereotype.Service;

@Service
public class NoticeService {

    @Autowired
    protected MailSender sender;

    @Autowired
    public NoticeService(MailSender mailSender) {
        this.sender = mailSender;
    }

    public void notice() {
            SimpleMailMessage mailMessage = new SimpleMailMessage();

            mailMessage.setTo("to@mailaddress");
            mailMessage.setFrom("from@mailaddress");
            mailMessage.setSubject("SES通知テスト");
            mailMessage.setText("test");
            sender.send(mailMessage);
    }
}

確認

メール送信前

メール送信後

増えてるのがわかると思います。

おわり

簡単でした

サーバサイドエンジニア。オムライスが好物

シェアする

  • このエントリーをはてなブックマークに追加

フォローする