ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Google App Engineコミュのメール送受信

  • mixiチェック
  • このエントリーをはてなブックマークに追加
お世話になります。
GAE/Jでメールの送受信はできたのですが、
メールの送信フォームを作って、そこから管理者にメール送信みたいなことはできないのでしょうか?

メール送信するには送信元のアドレスが登録されていないとダメだし、
メール受信はメーラーでアドレス指定してそれをサーブレットで受信する形じゃないですか。
そうなると上記のようなWeb上でメール送信フォームに入力させて受け取るみたいなことができないですよね。

何かよい解決法はないでしょうか・・・?
宜しくお願いします。

コメント(10)

初めましてライスさん

やりたい事はWebフォームで入力された内容を管理者へ送る事ですよね?
であれば、javaメールで管理者宛へメールへ送信ができると思います。
※ 送受信ができているのであれば、お分かりかと思います。

>メール送信するには送信元のアドレスが登録されていないとダメだし、
通常はシステム専用のメールアドレスを登録し、そのアドレスを使ってメールを送信します。

その送信専用のアドレス(例えばinfo@mail.com※登録済み)を送信元とし、
管理者のメールアドレス宛(例えばadmin@mail.com)にメールを送信するだけです。
※ 送信先(この場合はadmin@mail.com)は登録する必要がありません。

受信者の管理者はメーラなり、Webメールでそのメールが受信できると思います。

>メール受信はメーラーでアドレス指定してそれをサーブレットで受信する形じゃないですか。
ここがいまいち分かりませんが、GAEのメール受信は確かにアドレスとマッピングされています。
しかし、管理者へメールを送るだけであればサーブレットを起動する必要は無いのでは?と思います。

もし、やりたい事が違うのであればもう少し仕様を教えていただけば助かります^^;
追記です。

もし、管理者がGAEの管理者を指していた場合、送信先、送信元は同一でも問題無いですが、管理者のアドレスがサーブレットとマッピングされている場合は、受信専用(サーブレット起動用)のメールアドレスを作成し、管理者のメールアドレスと切り離すことをオススメします。
>>[2]
初めまして。コメントありがとうございます。
確かに、メール送信フォームからサーブレットに送って、
送信元メールアドレスを登録済みアドレスにして、
自分のアドレスにメール送信すれば、表面上は問題のない動作ですね。

メール受信機能があるんで、なんかメール受信機能を経由して、自分にメール送信したかったんですよね。
メール送信フォーム→受信サーブレット→メール送信 みたいな流れでやりたかったんですよ。別にそんなことする必要なかったですねw

仕様としては、会社HPとかのお問い合わせ画面のメール送信フォームみたいなのを考えてました。

メール受信サーブレットはあくまで、メーラーからの直接メール受信として、送信フォームとは分けて使えばいいですかね。

>>[3]

>メール受信サーブレットはあくまで、メーラーからの直接メール受信として、送信フォームとは分けて使えばいいですかね。
ケースバイケースだと思いますが、今回の仕様であればそれで良いかと思います。
メール受信サーブレットはただ、サーブレットの起動トリガーでしか出なく、ただそれだけなので、無理に使う必要は無いかと思います。

利用シーンとして例えば、メールでの問合せをWebで一括管理する必要がある場合や、お知らせメールの本文をWebで新着お知らせとして表示したり等、メールからWebに情報をリレーするときに使います。
※メールで問合せがあったら社内システムの問合せ一覧に格納すると言った様な時ですね。

ちょっと変った使い方で、バッチの起動トリガーとして使ったりも出来ます^^;
>>[4]
なるほど。メール受信をトリガーにして、色々やれそうですね。
参考になります。
質問です。
なぜか、メール受信機能で、gmailからGAEにメールを送信すると、送りたいアドレスにメールが転送できません。gmailにエラーメールも来ていません。
gmail以外からGAEに送信すると、ちゃんと送りたいアドレスにメールが送信されます。どういうことなの・・・?
>>[6]
おはようございます。

gmail、gmail以外からGAEにメールを送信とありますが、下記の整理で良かったですか?

hoge@gmail.com  → gae@xxx.appspotmail.com = 処理(メール転送)が実行されない
hoge@yahoo.co.jp → gae@xxx.appspotmail.com = 処理(メール転送)が実行される

メールが受信出来ていないのか、それともメール送信でこけているのか判断が必要になります。
ログなどで追っかけて頂けると判断が付くかと思います。

また、転送先について2点ほど確認があります。
1.転送先(To)について
 転送先(To)はhoge@gmail.comでしょうか?
 それとも、また別のfuga@gmail.comでしょうか?

2.転送に利用している送信者(from)のアドレスについて
 転送メールの送信者(from)はhoge@gmail.comでしょうか?
 それとも、また別のfuga@gmail.comでしょうか?




>>[7]

hoge@gmail.com  → gae@xxx.appspotmail.com = 処理(メール転送)が実行されない
hoge@yahoo.co.jp → gae@xxx.appspotmail.com = 処理(メール転送)が実行される

上記であっています。

転送先(TO)はgmailではなく、普通のyahooメールです。
FROMのアドレスは、GAEのアプリケーションに登録したgmailアカウントです。
それでないと送信できないですから。

で、登録gmailからGAEにメール送信でも、
登録されてないgmailからGAEにメール送信でも、
とにかくgmailだけウンともスンとも言わないんですよ〜。
yahooメールや携帯メールはちゃんと転送してくれます。
gmailとGAEはサーバが同じで、何か規制があったりするんですかね?

ログに関しては設定してないので後で色々やってみようと思います。
>>[8]
gmailは色々と制限がありますから^^;

先にログで現象の切り分けをすると解決の糸口が見つかるかもしれません。

ログで、そもそもサーブレットが起動しているのか?
サーブレットは起動してるけど、メール送信でこけているのか?
ここまで分かると原因が見えてくると思います。
>>[9]

ありがとうございます。
アドバイスしてくださった通り、ログを見たところ

MimeMessage message = new MimeMessage(session, request.getInputStream());
receivedBody = (String)message.getContent(); //受信メール本文を取得
↑この操作で、

java.lang.ClassCastException: javax.mail.internet.MimeMultipart cannot be cast to java.lang.String

と出て、どうもgmailのメッセージ本文をSringにキャストできなくてエラーになっているようです。

gmailのメール本文取得ってこのコードじゃできないんですかね・・・?

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Google App Engine 更新情報

Google App Engineのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング