Simple little code for checking gmail using headerinfo
<?php /* Created on: 11/3/2008 By Ron Hickey 6tx.net/gmail_mod
Gmail mod for admin panels or you can edit it and convert html results to XML for personal RSS reader */
// enter gmail username below e.g.--> $m_username = "yourusername";
$m_username = "";
// enter gmail password below e.g.--> $m_password = "yourpword";
$m_password = "";
// enter the number of unread messages you want to display from mailbox or
//enter 0 to display all unread messages e.g.--> $m_acs = 0;
$m_acs = 15;
// How far back in time do you want to search for unread messages - one month = 0 , two weeks = 1, one week = 2, three days = 3,
// one day = 4, six hours = 5 or one hour = 6 e.g.--> $m_t = 6;
$m_t = 2;
//----------->Nothing More to edit below
//open mailbox..........please
$m_mail = imap_open ("{imap.gmail.com:993/imap/ssl}INBOX", $m_username . "@gmail.com", $m_password)
// or throw a freakin error............you pig
or die("ERROR: " . imap_last_error());
// unix time gone by or is it bye.....its certanly not bi.......or is it? ......I dunno fooker
$m_gunixtp = array(2592000, 1209600, 604800, 259200, 86400, 21600, 3600);
// Date to start search
$m_gdmy = date('d-M-Y', time() - $m_gunixtp[$m_t]);
//search mailbox for unread messages since $m_t date
$m_search=imap_search ($m_mail, 'UNSEEN SINCE ' . $m_gdmy . '');
//If mailbox is empty......Display "No New Messages", else........ You got mail....oh joy
if($m_search < 1){
$m_empty = "No New Messages";}
else {
// Order results starting from newest message
rsort($m_search);
//if m_acs > 0 then limit results
if($m_acs > 0){
array_splice($m_search, $m_acs);
}
//loop it
foreach ($m_search as $what_ever) {
//get imap header info for obj thang
$obj_thang = imap_headerinfo($m_mail, $what_ever);
//Then spit it out below.........if you dont swallow
echo "<body bgcolor=D3D3D3><div align=center><br /><font face=Arial size=2 color=#800000>Message ID# " . $what_ever . "</font>
<table bgcolor=#D3D3D3 width=700 border=1 bordercolor=#000000 cellpadding=0 cellspacing=0>
<tr>
<td><table width=100% border=0>
<tr>
<td><table width=100% border=0>
<tr>
<td bgcolor=#F8F8FF><font face=Arial size=2 color=#800000>Date:</font> <font face=Arial size=2 color=#000000>" . date("F j, Y, g:i a", $obj_thang->udate) . "</font></td>
<td bgcolor=#F8F8FF><font face=Arial size=2 color=#800000>From:</font> <font face=Arial size=2 color=#000000>" . $obj_thang->fromaddress . "</font></td>
<td bgcolor=#F8F8FF><font face=Arial size=2 color=#800000>To:</font> <font face=Arial size=2 color=#000000>" . $obj_thang->toaddress . " </font></td>
</tr>
<tr>
</table>
</td>
</tr><tr><td bgcolor=#F8F8FF><font face=Arial size=2 color=#800000>Subject:</font> <font face=Arial size=2 color=#000000>" . $obj_thang->Subject . "</font></td></tr><tr>
</tr>
</table></td>
</tr>
</table><a href=http://gmail.com target=_blank><font face=Arial size=2 color=#800000>Login to read message</a></font><br /></div></body>";
}} echo "<div align=center><font face=Arial size=4 color=#800000><b>" . $m_empty . "</b></font></div>";
//close mailbox bi by bye
imap_close($m_mail);
?>
imap_headerinfo
(PHP 4, PHP 5)
imap_headerinfo — Lit l'en-tête du message
Description
object imap_headerinfo
( resource $imap_stream
, int $msg_number
[, int $fromlength
[, int $subjectlength
[, string $defaulthost
]]] )
Récupère les informations sur un numéro de message donné en lisant ses en-têtes.
Liste de paramètres
- imap_stream
-
Un flux IMPA retourné par la fonction imap_open().
- msg_number
-
Le numéro du message
- fromlength
-
Nombre de caractères pour la propriété fetchfrom. Doit être plus grand ou égal à 0.
- subjectlength
-
Nombre de caractères pour la propriété fetchsubject. Doit être plus grand ou égal à 0.
- defaulthost
-
Valeurs de retour
Retourne les informations dans un objet contenant les propriétés suivantes :
- "toaddress" : toute la ligne d'en-tête to: jusqu'à 1024 caractères
- "to" : un tableau d'objets issus de la ligne to: avec les propriétés suivantes : personal, adl, mailbox, et host
- "fromaddress" : toute la ligne d'en-tête from: jusqu'à 1024 caractères
- "from" : un tableau d'objets issus de la ligne From: avec les propriétés suivantes : personal, adl, mailbox, et host
- "ccaddress" : toute la ligne d'en-tête cc: jusqu'à 1024 caractères
- "cc" : un tableau d'objets issus de la ligne cc: avec les propriétés suivantes : personal, adl, mailbox, et host
- "bccaddress" : toute la ligne d'en-tête bcc: jusqu'à 1024 caractères
- "bcc" : un tableau d'objets issus de la ligne Bcc: avec les propriétés suivantes : personal, adl, mailbox, et host
- "reply_toaddress" : toute la ligne d'en-tête Reply_to: jusqu'à 1024 caractères
- "reply_to" : un tableau d'objets issus de la ligne Reply_to: avec les propriétés suivantes : personal, adl, mailbox, et host
- "senderaddress" : toute la ligne d'en-tête Sender: jusqu'à 1024 caractères
- "sender" : un tableau d'objets issus de la ligne Sender: avec les propriétés suivantes : personal, adl, mailbox, et host
- "return_pathaddress" : toute la ligne d'en-tête Return-path: jusqu'à 1024 caractères
- "return_path" : un tableau d'objets issus de la ligne Return-path: avec les propriétés suivantes : personal, adl, mailbox, et host
- remail -
- "date" : La date du message, telle que trouvée dans les en-têtes
- "Date" : Identique à "date"
- "subject" : Le sujet du message
- "Subject" : Identique à "subject"
- "in_reply_to" :
- "message_id" :
- "newsgroups" :
- "followup_to" :
- "references" :
- "Recent" : R si le message est récent et lu, N si le message est récent et non lu, " " si le message n'est pas récent.
- "Unseen" : U si le message est non lu ET non récent, " " si le message est non lu et récent
- "Flagged" : F si le message contient un drapeau, " " sinon
- "Answered" : A si une réponse a été faite à ce message, " " sinon
- "Deleted" : D si le message est effacé, " " sinon
- "Draft" : X si le message est un brouillon, " " sinon
- "Msgno" : Le numéro du message
- "MailDate" :
- "Size" : La taille du message
- "udate" : Date de l"envoi du message, sous la forme d"une date Unix
- "fetchfrom" : Ligne "from" formatée afin de tenir dans fromlength caractères
- "fetchsubject" : Ligne "subject" formatée afin de tenir dans subjectlength caractères
imap_headerinfo
ron at NOSPAM dot clicks2hits dot com
06-Nov-2008 02:51
06-Nov-2008 02:51
scott at fuzzygroup dot com
11-Nov-2002 06:13
11-Nov-2002 06:13
If you want to extract values from to, from, or other header elements, they are an object and you need to loop over them i.e.
$header = imap_header($mbox, $message_id);
$from = $header->from;
foreach ($from as $id => $object) {
$fromname = $object->personal;
$fromaddress = $object->mailbox . "@" . $object->host;
}
Would give you two variables for the friendly from and the smtp from address
Thanks to www.natrak.net for help with this
