GCEでSendGrid使う~Spring mail(Java Mail)編~

  • 2
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

GCE上でSendGridを使います。Spring Bootでアプリケーションを開発している人ならSpring Mail(Java Mail)がオススメ。事前にSendGridのアカウントを作っておいて下さい。GCEも使えるようにしておいてください。

依存ファイル

pom.xml
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-mail</artifactId>
  <version>1.3.2.RELEASE</version>
</dependency>

<dependency>
  <groupId>com.sun.mail</groupId>
  <artifactId>javax.mail</artifactId>
  <version>1.5.5</version>
</dependency>

前提はSpring Bootのアプリケーションを既に作っていることです。なので、Spring Boot系の依存ファイルは省略します。

メール送信部分

@Autowired
private JavaMailSender javaMailSender;

public void setMailSender(JavaMailSender javaMailSender) {
  this.javaMailSender = javaMailSender;
}

public void send() {
  try {
    MimeMessage mail = javaMailSender.createMimeMessage();
    mail.setHeader("Content-Transfer-Encoding", "base64");
    MimeMessageHelper helper = new MimeMessageHelper(mail, false);
    helper.setTo("To");
    helper.setReplyTo("FROM");
    helper.setFrom("FROM");
    helper.setSubject("SUBJECT");
    helper.setText("CONTENT");
    javaMailSender.send(mail);
  } catch (MessagingException e) {
    //Exception
  }
}

SendGridの設定

application.properties
spring.mail.default-encoding=UTF-8
spring.mail.protocol=smtp
spring.mail.host=smtp.sendgrid.net
spring.mail.port=2525
spring.mail.jndi-name=mail/Session
spring.mail.username=your.sendgrid.username
spring.mail.password=your.sendgrid.password
spring.mail.properties.mail.smtp.auth=true

spring.mail.usernameにSendGridのユーザー名を、spring.mail.passwordにSendGridのパスワードをそれぞれ入力します。

終わりに

以上でGCEからSendGrid経由でメールの送信ができます。既にSpring Mailを使っていた人は気づいたと思いますが、基本的にはSpring Mail用の設定ファイルを多少変更するだけです。