GAEでメール送信するの、どうしたらいいんやろーと思っていたのですが、本にサンプルが載っていて非常に簡単でした。送るだけなら。深くはやってないのでひとまずメモ。今回は自分のサイトのお問い合わせページを作るために調べているので、いうなれば自分宛にメールしています。だから、すごく簡単になってます。
GAEでメールを送る送信元のメアドは、
- 管理者のメールアドレス
- Googleアカウントでログインしているユーザ自身のメールアドレス
- 電子メール受信で使うことのできるメールアドレス
となっています。これはアドレス偽装してメール送信するのを防ぐためです。
一番簡単にメールを送る方法としては、管理者のメールアドレスを使ってしまうことです。今回はそうしています。
JavaMail APIとLow level APIの2つの方法がありますが、今回はLow level APIを使っています。本にこちらのほうが簡単と書いてあったので(^_^;)たしかにすごく簡単でした。
※ソースコードはSlim3のコントローラーです。validateなどは一切行っていません。
public class IndexController extends Controller { @Override public Navigation run() throws Exception { if (isPost()) { // POSTされたデータを取得 HashMap<String, Object> input = new RequestMap(request); String name = input.get("name").toString(); String mail = input.get("mail").toString(); String subject = input.get("subject").toString(); String body = input.get("body").toString(); Message message = new Message(); message.setSender("********@gmail.com"); // 管理者のアドレス message.setTo("****@********.com"); // 宛先を設定 message.setSubject(subject); message.setTextBody("名前: " + name + "\n\nメールアドレス: " + mail + "\n\n" + body); MailService ms = MailServiceFactory.getMailService(); // メールを送信する ms.send(message); return forward("index.jsp"); } else { return forward("index.jsp"); } } }
シンプル過ぎる・・・。大した例じゃなくてすみません。
参考にした書籍は以下になります。データストア以外の情報は超便利な気がする。
【送料無料】すっきりわかるGoogle App Engine for Javaクラウドプログ |