PHP Conference Nagoya 2025

mailparse_rfc822_parse_addresses

(PECL mailparse >= 0.9.0)

mailparse_rfc822_parse_addressesРазобрать адреса в соответствии с RFC 822

Описание

mailparse_rfc822_parse_addresses(string $addresses): array

Разбирает список получателей в соответствии с » 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 notes

up
1
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);
up
1
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.
up
-1
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
?>
To Top