はじめに
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用の設定ファイルを多少変更するだけです。