GAEからメールを送信する方法
Javamailを使うと簡単に送信できる。
コードはあちこちにころがってるからいまさら書くまでもないけど。
package jp.hoge; import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class Mailer { public Mailer() {} public void send(String subject, String body, String to) throws MessagingException { String sender = "hoge@example.com"; Properties props = new Properties(); Session session = Session.getDefaultInstance(props); MimeMessage msg = new MimeMessage(session); InternetAddress addr = new InternetAddress(sender); msg.setFrom(addr); msg.setSender(addr); InternetAddress dest = new InternetAddress(to); msg.addRecipient(Message.RecipientType.TO, dest); msg.setSubject(subject, "UTF-8"); msg.setText(body); Transport.send(msg); } }
こんな感じで。
で、コードを書くだけだと送れない。
「Unauthorized Sender」と怒られる。
これを回避するには、Google Cloud Platform にアクセスして、メールを送信するプロジェクトを選択する。
そして、左上のメニューから「App Engine」を選択。
次に、「App Engine」のメニューから「設定」を選択。
右側で「アプリケーションの設定」タブで「編集」をクリックする。
そしてメールを送信するアドレスを「Email API の承認済み送信者」に入力して「保存」をクリックする。
これでメールを送信できるようになる。