質問: imap_fetch_overviewからメールアドレスの抽出 imap_fetch_overviewでメールのヘッダーを取得し、メールアドレスだけを抽出したいと考えております。 $val->from;でfromは抽出できたのですが、名前などを設定されていた場合に、メールアドレスだけを抽出できませんでした。 何かいい方法がございましたらお教えいただければと思います。
回答: imap_overview_info()はヘッダ情報の「概要」を取得する関数なので、ヘッダ情報がすべて返されるわけではありません。 メールアドレスまで解析された形でヘッダ情報を取得したい場合には、imap_headerinfo()を使った方が楽だと思います。imap_headerinfo()を使えば、返り値を$valに入れた場合には次のようにすればアドレスが取得できます。 $val->from[0]->mailbox."@".$val->from[0]->host imap_fetch_overview()で取得したfromの値をpearのmail_rfc822::parseaddresslist()を使って解析させるという方法もなくはないのですが、それなら最初から解析済みの値を返してくれる関数を使った方がおそらく早いと思います。