PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mailparse_stream_encode> <mailparse_msg_parse
Last updated: Fri, 03 Oct 2008

view this page in

mailparse_rfc822_parse_addresses

(PHP 4 >= 4.0.7, PECL mailparse:0.9-2.1.1)

mailparse_rfc822_parse_addressesRFC 822 準拠のアドレスをパースする

説明

array mailparse_rfc822_parse_addresses ( string $addresses )

» RFC 822 準拠の受信者リスト、 たとえば To: ヘッダの内容などをパースします。

パラメータ

addresses

アドレスを含む文字列。たとえば Wez Furlong <wez@example.com>, doe@example.com のようになります。

注意: この文字列にはヘッダ名を含めてはいけません。

返り値

各受信者について以下のキーをもつ連想配列の配列を返します。

display 表示用の受信者名。この部分が設定されていない場合は、 address と同じ値となります。
address メールアドレス。
is_group 受信者がニュースグループである場合に TRUE、そうでない場合に FALSE

例1 mailparse_rfc822_parse_addresses() の例

<?php

$to 
'Wez Furlong <wez@example.com>, doe@example.com';
var_dump(mailparse_rfc822_parse_addresses($to));

?>

上の例の出力は以下となります。

array(2) {
  [0]=>
  array(3) {
    ["display"]=>
    string(11) "Wez Furlong"
    ["address"]=>
    string(15) "wez@example.com"
    ["is_group"]=>
    bool(false)
  }
  [1]=>
  array(3) {
    ["display"]=>
    string(15) "doe@example.com"
    ["address"]=>
    string(15) "doe@example.com"
    ["is_group"]=>
    bool(false)
  }
}



mailparse_stream_encode> <mailparse_msg_parse
Last updated: Fri, 03 Oct 2008
 
add a note add a note User Contributed Notes
mailparse_rfc822_parse_addresses
dancablam
07-May-2007 03:05
To just extract the email address out of an RFC822 line, it's faster and more reliable to just use a simple regex such as:

<?php
$rfc
= '"Bob Smith" <bob@smith.com>';
preg_match('/[\\w\\.\\-+=*_]*@[\\w\\.\\-+=*_]*/', $rfc , $regs);
$parsed = $regs[0];
?>

The above code will pull out: bob@smith.com

No matter the variation of the RFC822 line, as long as there's a valid email address in it somewhere, the above regex will find it.
24-Nov-2004 09:12
An alternative to the mailparse_rfc822_parse_addresses() function is Mail_RFC822::parseAddressList() from Pear:

http://pear.php.net/manual/en/package.mail.mail.php

It parses the string and returns a structured tree of data. Returns a pear_error object if the string is not valid.

Example:

require_once "PEAR.php";
require_once "Mail/RFC822.php";
                                                                               
$addr= "Hi <hi@world.org>";
                                                                               
$res= Mail_RFC822::parseAddressList($addr);
if (PEAR::isError($res)) die("NOT VALID: " . $res->getMessage() . "\n");
echo "OK. Data:\n";
print_r($res);
mat at phpconsulting dot com
25-Apr-2003 01:59
If for some reason you cannot compile mailparse into your install of PHP, you will also find an extremely similar function in the Mail_MIME PEAR class, specifically in mimeDecode.php.

mailparse_stream_encode> <mailparse_msg_parse
Last updated: Fri, 03 Oct 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites