メールの本文を添付ファイルと切り離して取得したいです - PHPプロ!Q&A掲示板

1496

  • 0P

メールの本文を添付ファイルと切り離して取得したいです

質問日時 / 2008年9月12日 20:12    回答数 / 3件

Questioner:  samorai  このエントリーをはてなブックマークに追加 

キーワード / pop3    pear    メール   

PEARの
require_once('Net/POP3.php');
を使い、
new Net_POP3();
でメールのインスタンスを作って、pop3サーバ上にあるメールを取得しています。

  1. $pop3 = new Net_POP3();
  2. var_dump($pop3 -> getBody(1));

上記のgetBody関数を使ってメールの本文を取り出した時、添付ファイルがある場合、
string(740281) "This is a multi-part message in MIME format.
--------------030406050801020808050000
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
のような文字列と、添付ファイルだと思われる文字列が表示されてしまいます。

imapが使えるサーバだと、添付ファイルがあった場合でも、imap_fetchbody関数を使えば
本文だけを取得して表示する事が出来るのですが、同じように取得して表示する方法はないのでしょうか?

どなたかおわかりになる方がいらっしゃいましたら、ご教授よろしくお願い致します。


ツリー一覧

┣A01yakou850PEAR::Mail_Mimeを使えば比較的簡単にメールの解析が
┃┗A01-1samoraiyakou850さん回答ありがとうございます。 PEAR::Ma
┗A02samoraihttp://wiki.poyo.jp/read/Writing/web_db_press/vol.

回答一覧

並び替え:

A01 参考になった
answereryakou850 [9月12日 20:59]

PEAR::Mail_Mimeを使えば比較的簡単にメールの解析ができるかもしれませんがいかがでしょうか?
http://pear.php.net/manual/ja/package.mail.mail-mime.php

この意見に回答する

ツリーへ TOPへ

A01-1
replyersamorai [9月16日 19:35]

yakou850さん回答ありがとうございます。

PEAR::Mail_Mimeを使ってみたのですが、中々うまくいきません。
具体的には以下のようにコードを記述しています。

  1. $pop3 = new Net_POP3();
  2. $pop3->connect($account['host'], $account['port']);
  3. $pop3->login($account['username'], $account['password']);
  4. $mailbody = $pop3 -> getBody($msg_num);#メールの本文を取得
  5. $tmp =  new Mail_mimeDecode($mailbody);
  6. var_dump($tmp);

しかしながら、添付の文章も以前と同様に取得してしまいます。
PEARの他のメソッドも一応試してみたのですが、同じ結果に終わりました。


これはメールサーバの問題でしょうか?

PHP初心者なので、どこに原因があるのかが検討がつきません。
クライアントスクリプトなら得意なのですが、サーバサイドはかなり難しいです。

みなさんPEARで解決しているのであれば、僕のやり方がおかしいのでしょうか?

おわかりになる方、ご教授よろしくお願い致します。

この意見に回答する

ツリーへ TOPへ

A02
answerersamorai [9月17日 19:50]

http://wiki.poyo.jp/read/Writing/web_db_press/vol.18/pear_webmail/040.implement

上記サイト様を参考にした所、メール本文と添付ファイルを分離する事が出来ました。

独自に関数を用意しないと簡単には分離が出来ないようです。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
マジッククォートとmysql_real_escape_string
 このエントリーをはてなブックマークに追加 
A
magic_quotes_gpcでは、SQLインジェクション対処は十分できません。主な理由として、以下が上げられます。 ・magic_quotes_gpcは文字コードを考慮しないで処理するので、Shift_JISを使っている場合、SQLインジェ...

>>続きを読む

SQLインジェクション対策は時と場合で使う関数が変わります。その時にあったものを使いましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)