How to Read and Update Your Mailbox Using Php
There are 2 ways I use 2 read email from my mailbox. Let the code explain: 1.) Usually use for gmail. /* connect to gmail */ $hostname = ...
https://www.czetsuyatech.com/2012/01/php-read-update-mailbox.html
There are 2 ways I use 2 read email from my mailbox. Let the code explain:
1.) Usually use for gmail.
1.) Usually use for gmail.
/* connect to gmail */ $hostname = '{imap.gmail.com:993/imap/ssl}INBOX'; $username = 'xxx@gmail.com'; $password = 'xxx'; /* try to connect */ $inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error()); /* grab emails */ $emails = imap_search($inbox,'ALL'); /* if emails are returned, cycle through each... */ echo "Messages count: " + count($emails); if($emails) { /* begin output var */ $output = ''; /* put the newest emails on top */ rsort($emails); /* for every email... */ foreach($emails as $email_number) { /* get information specific to this email */ $overview = imap_fetch_overview($inbox,$email_number,0); $message = imap_fetchbody($inbox,$email_number,1); $output .= '<br />Subject: '. $overview[0]->subject.'<br />'; $output .= 'From: '. $overview[0]->from.'<br />'; $output .= 'To: '. $overview[0]->to.'<br />'; $output .= 'Date: '. $overview[0]->date.'<br />'; /* output the email body */ $output.= '<div>Message: '.$message.'</div>'; } echo $output; } /* close the connection */ imap_close($inbox);2.) Sometimes I'm having a problem reading the message part in the first method, so I searched for a new way (usually for POP protocol). And this is how, I got it somewhere:
function get_mime_type(&$structure) { $primary_mime_type = array("TEXT", "MULTIPART","MESSAGE", "APPLICATION", "AUDIO","IMAGE", "VIDEO", "OTHER"); if($structure->subtype) { return $primary_mime_type[(int) $structure->type] . '/' .$structure->subtype; } return "TEXT/PLAIN"; } function get_part($stream, $msg_number, $mime_type, $structure = false,$part_number = false) { if(!$structure) { $structure = imap_fetchstructure($stream, $msg_number); } if($structure) { if($mime_type == get_mime_type($structure)) { if(!$part_number) { $part_number = "1"; } $text = imap_fetchbody($stream, $msg_number, $part_number); if($structure->encoding == 3) { return imap_base64($text); } else if($structure->encoding == 4) { return imap_qprint($text); } else { return $text; } } if(!isset($prefix)) { $prefix = ''; } if($structure->type == 1) /* multipart */ { while(list($index, $sub_structure) = each($structure->parts)) { if($part_number) { $prefix = $part_number . '.'; } $data = get_part($stream, $msg_number, $mime_type, $sub_structure,$prefix . ($index+1)); if($data) { return $data; } } } } return false; } $hostname = '{mail.xxx.xxx/pop:110}INBOX'; $username = 'xxx@xxx.xx'; $password = 'xxx'; /* open imap connection */ /* try to connect */ $inbox = imap_open($hostname,$username,$password) or die('Cannot connect to smschannel4: ' . imap_last_error()); /* grab emails */ $emails = imap_search($inbox,'ALL'); /* if emails are returned, cycle through each... */ if($emails) { /* begin output var */ $output = ''; /* put the newest emails on top */ rsort($emails); /* for every email... */ foreach($emails as $email_number) { /* get information specific to this email */ $overview = imap_fetch_overview($inbox,$email_number,0); $message = get_part($inbox, $email_number, 'TEXT/PLAIN'); $subject = transformstr($overview[0]->subject); $from = ereg_replace("\"","",$overview[0]->from); $from = transformstr(imap_utf8($from)); $to = ereg_replace("\"","",$overview[0]->to); $to = transformstr(imap_utf8($to)); $message = clean($message); //how you would delete from the email server //imap_delete($inbox, $email_number); } } imap_expunge($inbox); /* close connections */ imap_close($inbox); echo count($emails) . " message/s processed.";
Post a Comment