プロが教えるわが家の防犯対策術!

GAEの勉強をしておりまして,ローカルでの開発環境(python)について質問させてください.

現在以下のURLを参考にしてGAEからメールを送信するプログラミングをしています。

「Google App Engineでもうちょっとがんばってみる:メール送信プログラム」
http://builder.japan.zdnet.com/virtualization/sp …

このページの6ページ目に乗っているプログラムを用いて,GAE上にデプロイすると確かにGAEから任意のアドレスにメールを送ることができるのですが、ローカルで開発サーバで実践しようとしてうまくいかない状態です.

このページの3ページ目に乗っているやり方でやっているのですが以下のようなエラーが出でてうまくいきません。
======
動作環境:mac OSX10.6.8
以下ターミナルでの動作

開発サーバの起動
dev_appserver.py --smtp_host=localhost --smtp_port=25 builder-example2/

サーバが起動する
(Warning:You are using a Python runtime (2.7) that is more recent than the production runtime environment (2.5). Your application may use features that are not available in the production environment and may not work correctly when deployed to production. とでるが多分今回のけんには関係ない?)

アプリ実行

WARNING 2012-11-28 10:52:02,843 mail.py:1232] 'to' is not a valid property to set for AdminEmailMessage. It is unused.
INFO 2012-11-28 10:52:02,843 mail_stub.py:138] MailService.SendToAdmins
From: xxxxx***@gmail.com
Subject: konnitiwa
Body:
Content-type: text/plain

となります。ブラウザ上での表示はうまく行きますがメールが送信されません。
ローカルでの環境での設定が間違えているのでしょうか?
不躾な質問で申し訳ありませんがもしわかる方いらっしゃれば教えていただければ幸いです。

A 回答 (1件)

GAEのドキュメントを見ると、こうあります。



https://developers.google.com/appengine/docs/pyt …
---------------------------------
メールと開発用サーバー
アプリケーションのメール送信機能をテストするときに、コンピュータから直接メール メッセージを送信するように開発用サーバーを設定できます。選択した SMTP サーバーを使用するよう、開発用サーバーを設定することもできます。また、Sendmail をコンピュータにインストール済みで、メール送信の設定をしている場合は、Sendmail を使用するよう設定することもできます。

SMTP サーバーの設定または Sendmail の有効化を行わないと、アプリケーションでメール サービスを呼び出しても、開発用サーバーはメッセージの内容をログに記録するだけで、メッセージは送信されません。
---------------------------------


SMTPサーバーの設定またはSendmailの有効化はされているでしょうか。これはdev_appserver.pyを実行する際にsmtp_hostおよびsmtp_port、smtp_user、smtp_passwordといったオプションを付けることで可能なようです。あるいはenable_sendmailにより、Sendmailを有効化することもできるようです。同じくGAEのドキュメントには以下のようにあります。


https://developers.google.com/appengine/docs/pyt …
---------------------------------
メールの使用

開発用ウェブ サーバーでは、App Engine のメール サービスの呼び出しでメールを送信することができます。メール サポートを有効にするには、使用するメール サーバーを指定するオプションをウェブ サーバーに提供する必要があります。ウェブ サーバーは SMTP サーバーを使用することも、ローカルにインストールした Sendmail を使用することもできます。

SMTP サーバーを使用してメール サポートを有効にするには、--smtp_host、--smtp_port、--smtp_user、--smtp_password の各オプションを適切な値で使用します。

dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns myapp
Sendmail を使用してメール サポートを有効にするには、--enable_sendmail オプションを使用します。ウェブ サーバーは、sendmail コマンドを使用して、インストール時のデフォルト設定でメール メッセージを送信します。

dev_appserver.py --enable_sendmail myapp
SMTP と Sendmail のどちらでもメールが使用できない場合、アプリケーションからメールを送信しようとしても何も起こりませんが、アプリケーションでは成功したように見えます。
---------------------------------


ざっとこれらの点について確認をされてみてはいかがでしょう。また使用されるSMTPサーバーあるいはSendmailについても正常に動作しメールが送信できるか確かめたほうが良いでしょう。
    • good
    • 0
この回答へのお礼

chiiba_kunさま
上記を読み、試行錯誤しまして,解決することができました.SMTPサーバの設定に不備があったようです.
ご丁寧に回答してくださり回答ありがとうございました,

お礼日時:2012/12/03 20:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!