今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

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 の承認済み送信者」に入力して「保存」をクリックする。

これでメールを送信できるようになる。