mailparse_rfc822_parse_addresses
(PECL mailparse >= 0.9.0)
mailparse_rfc822_parse_addresses — RFC 822 準拠のアドレスをパースする
説明
» 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) } }
+add a note
User Contributed Notes 3 notes
Anonymous ¶
20 years ago
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 ¶
21 years ago
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.
murph dot vienna at gmail dot com ¶
10 years ago
<?php
// input: My Test Email <some.test.email@somewhere.net>
function get_displayname_from_rfc_email($rfc_email_string) {
// match all words and whitespace, will be terminated by '<'
$name = preg_match('/[\w\s]+/', $rfc_email_string, $matches);
$matches[0] = trim($matches[0]);
return $matches[0];
}
// Output: My Test Email
function get_email_from_rfc_email($rfc_email_string) {
// extract parts between the two parentheses
$mailAddress = preg_match('/(?:<)(.+)(?:>)$/', $rfc_email_string, $matches);
return $matches[1];
}
// Output: some.test.email@somewhere.net
?>
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google