26/12/2013, 13:33
|
| | Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 16 años, 5 meses Puntos: 9 | |
Aporte: leer gmail con IMAP y marcar importante No sé donde poner aportes. Lo siento.
Lee gmail de cualquier mailbox y señala si es importante el mensaje. Podéis votar si va bien o mal Código PHP: // La dirección de correo electrónico y contraseña de Gmail $username = '[email protected]'; $password = 'passs'; //recoger la variable de la carpeta ó asignar: {imap.gmail.com:993/imap/ssl}INBOX donde INBOX, [Gmail]/Enviados, ETC.. $folder = $_GET['folder']; // ¿Qué carpetas o la etiqueta que desea tener acceso ? - Ejemplo: INBOX, All Mail, Trash, labelname //Nota: es case sensitive $imapmainbox = $folder; echo $folder; //Seleccionar messagestatus como ALL o UNSEEN $messagestatus = "ALL";
//------------------------------------------------------------------- //Gmail Connection String $imapaddress = $folder; //Gmail host folder $hostname = $folder; //Abrir conexion $connection = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error()); //Grabar los emails en el inbox $emails = imap_search($connection,$messagestatus); //numero de emails en el inbox $totalemails = imap_num_msg($connection); $max_emails = 5; echo "Total Emails: " . $totalemails . "<br>"; if($emails) { $count = 1; //ordenar emails: los nuevos primero rsort($emails); //loop de cada email en el inbox foreach($emails as $email_number) { //grabar headers y mensaje $header = imap_fetch_overview($connection,$email_number,0); // Porque los archivos adjuntos pueden ser problemáticas esta lógica es por defecto para saltarse los archivos adjuntos $message = imap_fetchbody($connection,$email_number,1.1); if ($message == "") { //no hay archivos adjuntos es logico $message = imap_fetchbody($connection, $email_number, 1); } //split el header array en variables $status = ($header[0]->seen ? 'read' : 'unread'); $priority = ($header[0]->flagged); $subject = $header[0]->subject; $from = $header[0]->from; $date = $header[0]->date; $uid = $header[0]->msgno; echo "status: " . $status . "<br>"; echo "subject: " . $subject . "<br>"; echo "from: " . $from . "<br>"; echo "date: " . $date . "<br>"; echo "date: " . $uid . "<br>"; echo "priority: " . $priority . "<br>"; echo "message: " . $message . "<br><hr><br>"; //Aquí es donde quieres empezar a analizar tus mensajes, enviar a una base de datos o cualquier acción . if($count++ >= $max_emails) break; } } else{echo "error";} // cerrar la conexión imap_close($connection);
Última edición por charlyta; 26/12/2013 a las 15:49 |