• ベストアンサー

メールの自動受信について

メールの処理(?)方法について質問です。 (質問方法がわからないので、誤記あると思いますのでご了承ください。) (言語や仕様についてもプロレベルではありません。) 携帯電話で会員サイトを作成しているのですが、メールの有効性を確かめるのと、画像を投稿する方法を模索しています。 まずサーバー環境ですが、 サクラインターネットのレンタルサーバーです。 選択理由はMySQL、PHPが手軽に使えたので・・・・ ここでの説明ドメイン【abc.sakura.ne.jp】 不正登録を防止する為に携帯の識別番号を使用して認証したいと思い例えば【個体識別番号@abc.sakura.ne.jp】にメールして貰った時に認証を許可しようと考えました。 が・・・・【個体識別番号@abc.sakura.ne.jp】は不特定多数でメール設定していない(架空)のアドレスとなる為リターンされてしまいます。 これをサーバー側で受付する方法はあるでしょうか? また【pics@abc.sakura.ne.jp】と言うアドレスを作成して、そのメールアドレスへ画像データを添付させたメールを送信してもらい、読込する方法(PHPの関数かその他の方法等)があったら教えてください。 なにぶん聞き方すらわからないド素人ですが、是非知恵を拝借したいのでお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • public_sa
  • ベストアンサー率52% (13/25)
回答No.2

過去自分の使っていたファイルの極ですが一部 書いておきます。パスなどは随所読み替えてください。 /etc/aliasesに photo: "|user/bin/php /program/php/photo/main.php" と記述します。 すると photo@****.ne.jpにメールが来ると/program/php/photo.main.php のファイルにパイプされます。 main.php <? require_once('analysis.class.php'); $ana = new analysis(); $mailer = new Mailer(); $ana -> set_file(); //一部抜粋END ?> analysis.class.php <? function set_file(){ //メールファイルの標準入力 $handle = fopen('php://stdin', 'r') or die("FILE NOT OPEN"); if($handle){ while(!feof($handle)){ $file[] = fgets($handle); } fclose($handle); //この後$fileを別関数などで解析すればいろいろ出来ます。 } ?> これで$file[]にメールのソースが全て入ります。 あとは1行ずつバウンダリーとか解析して MIMEとかも解析してメッセージとか何でも取り出せます。 当然メールのヘッダーも入るのでTOやFROMも取り出せます。 #1さんの通り画像ならbase64_decode() base64_encode() など使って画像解析などもできます。し 一時ファイル的な画像を作ってImageMagick等使えば加工などもできちゃいます。 メールのソースも定形なので少し勉強して理解し少しの 文字列操作の知識で解析できちゃうと思います。

yu_ray2007
質問者

お礼

public_saさん。 めちゃくちゃありがとうございます。感謝感謝です。 サクラのサーバー仕様は別として、【出来そう】と思えるようになったので本当に感謝しています。 用語教えて貰って検索してみたら更に専門用語の羅列で・・・・・ 今まで他人まかせの部分だったので戸惑いばかりでPHP側に全然手が付けられなくなりました。 ソース部分まで付けて頂いてとてもとても感謝しています。 ちょっと頑張ってやってみたいと思います。 また、さまざまトラブル等があると思いますがアドバイス等を頂けたら嬉しいです。 本当にありがとうございます。

その他の回答 (1)

  • tols
  • ベストアンサー率46% (7/15)
回答No.1

1.メールをPHPに受け渡す(パイプする)まで Sakuraの仕様がわからないので、なんとも言えませんが、メールをパイプしないと、ご希望の動作はできません。 あと、パイプするには、Linuxをコマンドで触れる権限か、深いところに設定ファイルを置ける権限が必要で、かつ、メールソフトに何を利用しているか(qmail, postfix, sendmail)も重要な要素になります(メールソフトによって、記述の仕方が変わりますので) 参考URLは、postfixでパイプする方法です。 2.メールを解読する メールをパースすると言います。 メールがどういったフォーマットで送られてくるのか、1度調べてみると良いかも知れません。 3.画像をデコードする メールで送信されてくる画像データと言うのはBase64エンコードされたものが送られてきます。 Base64デコードして画像として扱って下さい。 補足 私が以前、同じようなプログラムを組んだ時は、本文に可逆暗号化した個体識別番号を埋め込み、送信していました。 この場合、どこまでを個体識別番号として取得するかの判定が難しいのですが…。 以上、長くなりましたが失礼します。

参考URL:
http://gimblog.blog122.fc2.com/blog-entry-1.html
yu_ray2007
質問者

お礼

早々ありがとうございます。 用語どうもありがとうございます。感謝です。 知識が無いので用語もわからず検索すら出来ない・・・質問もこんな感じになってしまってました。 でも、tolsさんの回答で少しは検索に幅持たせる事も出来ると思いますし、質問ももう少し具体的に出来ると思います。 取りあえず検索してみて色々調べてみます。 何か補足や注意点がありましたら是非アドバイスください。

関連するQ&A