- ベストアンサー
メールで画像をアップロードするには?
こんにちは。質問させていただきます! 只今、掲示板を設置しており、アップロードの機能がないため メールで画像をアップロードしたいと考えています。(ちなみに携帯サイト用) 普通のアップローダーの作り方は他のサイトを参考にすれば なんとなくわかるのですが、携帯はメールでのみしかアップロードできません。 そこで疑問に思ったのが ・メルアドはレンタルサーバーのを必ずしも使わければならないのか。(yahooのアドレスでもできるのか) ・radishなどのメールサーバーが必要なのか。またメールソフト(outlookなど)も必要なのか この2点です。 いまいちメールでのアップロードが理解できないので できれば、簡単なソースを書いていただけると参考になりますm(_ _)m
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>メールサーバーやクライアントソフトがなくともPHPのみで作成できるわけですね!? 揚げ足をとるわけではないですがメールサーバーがなくては受けられませんので メールを受ける処理はできません。 ここで重要なのは「自前でメールサーバーを用意する必要はない」ということです >>・メールをうける際にプログラムにリダイレクトする >これはPHPで処理するということでしょうか? 処理方法は大きく分けて以下の2つの内のどちらか (1)メールサーバーが用意した、プログラムにメールを転送する仕組みをつかう。 わかりづらいかもしれないので、もうすこし砕いて言うと おおくのメールサーバーは.forwardというファイルでメールを転送する 仕組みをもっています。もちろんこれはPHPなんて関係ありません。 普通はここにhoge@sample.comなどの別のメールアドレスをかくと、 転送されるのですが、"| コマンド"などの文字を書いておくと、プログラムに 標準入力を利用して文字列をわたすことができます。 そこにメール解析プログラムを書いておけば、よいわけです。 (2)imap関数などメールボックスにたまったメールを解析する。 (1)とことなり、受け取った瞬間に処理をするのではなく、メールボックスに メールを溜めた上で、一定の期間でそのメール内容をとりにいって、 中身を解析する方法があります。 そのたいくつかバリエーションはありますが、大別すると上のどちらかの パターンにあてはまる場合がおおいでしょう
その他の回答 (2)
- rally
- ベストアンサー率28% (32/111)
はてなに、似たような質問があり、いくつか回答がありました。 参考になさってください。
補足
回答ありがとうございますm(_ _)m こちらは以前参考にしたのですが、「レッツPHP」さんの 写メールBBSはややこしすぎて参考になりませんでした^^; もっとシンプルなソースでわかりやすいのを探しています。 回答していただきありがとうございました。
- yambejp
- ベストアンサー率51% (3827/7415)
>メールで画像をアップロードしたい だいたい以下のながれ・・・ ・メールをうける際にプログラムにリダイレクトする ・受け取ったメールがマルチパートで画像が添付されているかどうか解析する ・画像のエンコードを得て、デコードする ひとつひとつをPHPで処理してもいいし、さがせばライブラリも見つかるでしょう。 imap系の関数も有効でしょう。 http://www.php.net/manual/ja/ref.imap.php ただし、これは単にPHPだけの問題ではないので、Eメールの基本が理解できて いないと話しになりません。 一度真剣に基礎から学習なさるのをオススメします。 その上で、端的に質問に回答すると >・メルアドはレンタルサーバーのを必ずしも使わければならないのか。 レンダルサーバーにアップするのであれば、レンタルサーバーのメアドで なければ、どうやって渡すつもりでしょう? 渡す方法さえ自力で見つけられるならできます。それができないなら、 レンタルサーバーのメアド以外ではできません。 >・radishなどのメールサーバーが必要なのか。またメールソフト(outlookなど)も必要なのか PHPで処理する前提であればメールのクライアントソフトは一切必要ありません。 というか連携させる方法を考えるくらいなら、PHPで手でプログラムを書くほうが 楽だと思います。
補足
さっそくの回答ありがとうございますm(_ _)m 2点の質問は理解できました! >PHPで処理する前提であればメールのクライアントソフトは一切必要ありません。 ↑ということは メールサーバーやクライアントソフトがなくともPHPのみで作成できるわけですね!? あと >・メールをうける際にプログラムにリダイレクトする これはPHPで処理するということでしょうか? いろいろ検索してみたら、sendmailやqmailやsendまね~るなどをつかって実現する方法もあるみたいなんですが どちらのほうがより楽に実現できますでしょうか? 初歩的な質問ですいませんm(_ _)m
補足
>「自前でメールサーバーを用意する必要はない」 これは、レンタルすればよいとの意味でしょうか? できれば、自分でメールサーバーを立ててやりたいのですが…可能でしょうか!? あと、最初に書いておくべきでした。今の自分の環境は Windows XP、Apache、PHP、DDNSサービスを使って自サーバを立てています。 今、回答していただきた記事を参考に(1)の手順で実現してみることにしました。 そこでまた疑問がでてきました。.forwardというのはソフトではないんでしょうか? ソフトの一部の機能なのでしょうか? なにをどうすればいいのか検討もつきません;; >そこにメール解析プログラムを書いておけば、よいわけです。 これは、PHPで処理するということですよね?? 毎度すいませんm(_ _)m