PHP Conference Japan 2024

mailparse_rfc822_parse_addresses

(PECL mailparse >= 0.9.0)

mailparse_rfc822_parse_addresses解析符合 RFC 822 的地址

描述

mailparse_rfc822_parse_addresses(字串 $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)
  }
}

新增註記

使用者貢獻的註記 3 筆註記

匿名
20 年前
mailparse_rfc822_parse_addresses() 函式的替代方案是 Pear 的 Mail_RFC822::parseAddressList()

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

它會解析字串並傳回結構化的資料樹狀結構。如果字串無效,則傳回 pear_error 物件。

範例

require_once "PEAR.php";
require_once "Mail/RFC822.php";

$addr= "Hi <hi@world.org>";

$res= Mail_RFC822::parseAddressList($addr);
if (PEAR::isError($res)) die("無效: " . $res->getMessage() . "\n");
echo "OK。資料:\n";
print_r($res);
mat at phpconsulting dot com
21 年前
如果因為某些原因您無法將 mailparse 編譯到您的 PHP 安裝中,您也會在 Mail_MIME PEAR 類別中找到極其類似的函式,特別是在 mimeDecode.php 中。
murph dot vienna at gmail dot com
10 年前
<?php
// 輸入:我的測試電子郵件 <some.test.email@somewhere.net>

function get_displayname_from_rfc_email($rfc_email_string) {
// 比對所有文字和空格,將以 '<' 終止
$name = preg_match('/[\w\s]+/', $rfc_email_string, $matches);
$matches[0] = trim($matches[0]);
return
$matches[0];
}
// 輸出:我的測試電子郵件

function get_email_from_rfc_email($rfc_email_string) {
// 擷取兩個括號之間的部分
$mailAddress = preg_match('/(?:<)(.+)(?:>)$/', $rfc_email_string, $matches);
return
$matches[1];
}
// 輸出:some.test.email@somewhere.net
?>
To Top