Intereting Posts

php imap получить с адреса электронной почты

Как получить адрес электронной почты из электронной почты с помощью imap_open?

Если имя отправителя известно, я получаю имя отправителя вместо адреса электронной почты, если я использую параметр «from».

Код: http://gist.github.com/514207

$header = imap_headerinfo($imap_conn, $msgnum); $fromaddr = $header->from[0]->mailbox . "@" . $header->from[0]->host; 

В худшем случае вы можете самостоятельно разобрать заголовки:

 <?php $headers=imap_fetchheader($imap, $msgid); preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)\r\n/m', $headers, $matches); ?> 

$ matches будет содержать 3 массива:

 $matches[0] are the full-lines (such as "To: user@user.com\r\n") $matches[1] will be the header (such as "To") $matches[2] will be the value (user@user.com) 

Получил это от: http://www.php.net/manual/en/function.imap-fetchheader.php#82339

Я тоже сражался с этим, но следующие работы:

 // Get email address $header = imap_header($imap, $result); // get first mails header echo '<p>Name: ' . $header->fromaddress . '<p>'; echo '<p>Email: ' . $header->senderaddress . '<p>'; 

Я использовал imap_fetch_overview (), но imap_header () дал мне всю необходимую мне информацию.

Имел такой же вопрос, как и вы …. должен был собрать его вместе, не знаю, почему это такой гонзоуэр.

Непритянутый пример здесь:

 $mbox = imap_open(....) $MN=$MC->Nmsgs; $overview=imap_fetch_overview($mbox,"1:$MN",0); $size=sizeof($overview); for($i=$size-1;$i>=0;$i--){ $val=$overview[$i]; $msg=$val->msgno; $header = imap_headerinfo ( $mbox, $msg); echo '<p>Name / Email Address: ' . $header->from[0]->personal ." ". $header->from[0]->mailbox ."@". $header->from[0]->host. '<p></br>'; } imap_close($mbox); 

imap_fetch_overview может быть тем, что вы ищете: http://www.php.net/manual/en/function.imap-fetch-overview.php

Пример использования можно найти здесь: http://davidwalsh.name/gmail-php-imap , в частности

echo $overview[0]->from;

Эта функция проста, но имеет ограничения. Более исчерпывающая версия находится в imap_headerinfo ( http://www.php.net/manual/en/function.imap-headerinfo.php ), которая может возвращать подробные массивы всех данных заголовка.

У меня возникли проблемы, пока я не заметил, что заголовок $ представляет собой массив объектов stdClass. Следующие две строки работали:

  $header=imap_fetch_overview($imap,$countClients,FT_UID); $strAddress_Sender=$header[0]->from;