Google App Engine で単純なメールを送信する

各種通知メッセージ等を能動的にユーザーに送信するには、なんといってもメール通知は非常に有効です。 したがって、アプリケーションからメールが送信できるということはアプリケーションを構築する環境としては重要なポイントです。 Google App Engine もインスタントメッセージの他、電子メールの送受信もサポートしています。

Google App Engine では JavaMail API を利用してメールを送信可能です。 JavaMail に関する完全な情報は Sun (Oracle) のサイトを見ていただくことにして、この資料では動くサンプルを提供します。

Google App Engine からメールを送信するための単純なコードは次のとおりです。

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

//...

Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);

String messageBody = "Hello!";

try{
  Message message = new MimeMessage(session);
  message.setFrom(new InternetAddress("from.address@example.com""Foo bar"));
  message.setRecipient(Message.RecipientType.TO,
  new InternetAddress("to.address@example.com"));
  message.setSubject("This is a test.");
  message.setText(messageBody);
  Transport.send(message);
}
catch(AddressException e){

}
catch(MessagingException e){

}

この例では、メッセージの件名 = "This is a test."、本文 = "Hello!"、送り元メールアドレス = "from.address@example.com"、送り先メールアドレス = "to.address@example.com" としています。 それぞれあなたの環境に合わせて変更してください。

ちなみに、送信できない時の主な理由としては、送り元メールアドレスが不正であることがあげられます。 メールを送信する条件に合う送り元メールアドレスを指定してください。

アタッチメント(添付ファイル)付きのメールや、HTML 形式のメールメッセージも送信可能ですが、 ここでは単純なテキスト形式のメールを送信しています。

メールの送信元が正しければ特に問題なく(特別な設定なしで)、これだけでメールは送信可能です。

尚、Google App Engine の開発サーバーでは実際にはメールは送信されず、 ログとして記録されるだけです。