PHPCon Poland 2024

mailparse_rfc822_parse_addresses

(PECL mailparse >= 0.9.0)

mailparse_rfc822_parse_addressesFaz o parse de endereços compatíveis com o RFC 822

Descrição

mailparse_rfc822_parse_addresses(string $addresses): array

Faz o parse de uma lista de destinatários compatível com o » RFC 822, como encontrado no cabeçalho To:.

Parâmetros

addresses

Uma string contendo endereços, como em: Wez Furlong <wez@example.com>, doe@example.com

Nota:

Esta string não deve incluir o nome do cabeçalho.

Valor Retornado

Retorna um array de arrays associativos com as seguintes chaves para cada destinatário:

display O nome do destinatário, para fins de exibição. Se esta parte não estiver definida para um destinatário, esta chave terá o mesmo valor de address.
address The email address
is_group true se o destinatário for um grupo de notícias, false caso contrário.

Exemplos

Exemplo #1 Exemplo de mailparse_rfc822_parse_addresses()

<?php

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

?>

O exemplo acima produzirá:

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

up
1
Anonymous
19 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