Google App Engineでもうちょっとがんばってみる:メール送信プログラム
Google App Engineの基礎を学んだところで、もうちょっと発展的なプログラムを組んでみよう。
メール送信機能
メールを送信している部分のソースコードは以下のようになる。
# ユーザの表示名とメールアドレスを取得
nickname = user.nickname()
mailAddr = user.email()
# ログを残す
logging.debug("%s<%s>にメールします", nickname, mailAddr)
# (1) メール送信
mail.send_mail(sender="xxx.xxx@gmail.com",
to="%s<%s>" % (nickname, mailAddr),
subject="こんにちは!%sさん" % nickname,
body="""
拝啓、%sさん
お世話になっております。builderです。
そしてさようなら。
""" % nickname)
メール送信に使用しているのは、google.appengine.api.mail.send_mail()関数だけだ。
関数の使用方法も、ソースを見れば一目瞭然だろう。
sender(メールの送信者)に指定するアドレスは、アプリケーションの管理者として指定した、Googleアカウントのメールアドレスでなければならないことに注意。ローカル環境ではどんなアドレスを指定してもエラーにならないが、実際App Engineに登録して動かす際エラーが発生する。
メールを送信するには、send_mail()以外にもEmailMessageクラスを使うと言う方法もある。こちらも、クラスの属性としてメールの情報を設定すると言うだけなので、説明は省略する。気になる方はこちらのリファレンスを見てほしい。
開発用サーバ上でメールを送信するには
ローカルの開発用サーバでメール送信をテストするには、起動コマンドに適切なオプションを指定する必要がある。オプションには以下のようなものがある。
--smtp_host・・・SMTPサーバのホスト名 --smtp_port・・・SMTPサーバのポート --smtp_user・・・SMTP認証に用いるユーザ名 --smtp_password・・・SMTP認証に用いるパスワード
これらのオプションを付与すると、起動コマンドは以下のようになる。
dev_appserver.py --smtp_host=localhost --smtp_port=25 builder-example2/
また、sendmailコマンドが利用可能なシステムであれば、「--enable-sendmail」と言うオプションを指定することで、同コマンドを用いたメール送信を行うことも可能だ。
ロギングについて
先ほどのソースコードで、ロギングを行っている部分があった。
# ログを残す
logging.debug("%s<%s>にメールします", nickname, mailAddr)
これは、Python標準のloggingモジュールを使用している。debug()関数を使用したデバッグメッセージは通常表示されないが、開発サーバに「--debug」オプションを指定することで表示できるようになる。
また、App Engineで公開中のアプリケーションログについては、管理コンソールから確認することができる。
- 特集: Google App Engine詳解 (3件)
- 2日前のトップ記事
- 4日前
- 5日前
- 6日前
- 7日前
- ホワイトペーパー
- 読者投票
- 話題のタグ
より多くのコスト削減に向けて、BEAの効果的なアプローチをご紹介いたします。詳しくはホワイトペーパーをご覧ください。
フォトレポート:世界各国の優秀な技術者がパリに集結--Imagine Cup 2008世界大会
バッチ処理でデータベース活用:4つの課題と5つの解決ポイント
Rubyでどう書く?:RubyでWord文書を作成する
Adobe Acrobat 9--音声やクイズを埋め込んでeラーニング
ウェブ制作者が仲間と幸せに仕事をする方法:仲間との出会い
Excelで多用する雑多な操作を素早く片付けるための10のティップス(前編)
開発者のFirefox 3:非互換のアドオンをインストール
今知るべき仮想化情報
「未来の、その先」をどう提言していくか
DELL連載第4回〜「Microsoft System Center」
Techno Exchange
ZDNet Japan Green IT