{"id":437,"date":"2009-07-11T00:15:46","date_gmt":"2009-07-10T23:15:46","guid":{"rendered":"http:\/\/bezerik.es\/me\/?p=437"},"modified":"2014-03-26T11:40:04","modified_gmt":"2014-03-26T10:40:04","slug":"recupera-tus-emails-de-gmail-a-traves-de-php-y-imap","status":"publish","type":"post","link":"http:\/\/bezerik.es\/me\/recupera-tus-emails-de-gmail-a-traves-de-php-y-imap\/","title":{"rendered":"Recupera tus emails de Gmail a trav\u00e9s de PHP y IMAP"},"content":{"rendered":"<p>Hasta dia de hoy desconoc\u00eda por completo la extensi\u00f3n <a href=\"http:\/\/us3.php.net\/manual\/en\/book.imap.php\" target=\"_self\">IMAP<\/a> pero no imaginaba que recuperar los mensajes de correo electr\u00f3nico de mi cuenta de Gmail usando PHP fuese tan sencillo.<\/p>\n<p>El c\u00f3digo\u00a0 PHP  que obtiene los correos electr\u00f3nicos de Gmail:<!--more--><\/p>\n<pre class=\"code\"><font color=\"#000000\"><font color=\"#0000BB\">&lt;?\r\n<br \/><\/font><font color=\"#FF8000\">\/**\r\n<br \/>&nbsp;*&nbsp;Recupera tus emails de Gmail a trav\u00e9s de PHP y IMAP\r\n<br \/>&nbsp;*http:\/\/bezerik.es\/me\/recupera-tus-emails-de-gmail-a-traves-de-php-y-imap\/\r\n<br \/>&nbsp;*&nbsp;*&nbsp;\r\n<br \/>&nbsp;*&nbsp;Idea&nbsp;original:&nbsp;Retrieve&nbsp;Your&nbsp;Gmail&nbsp;Emails&nbsp;Using&nbsp;PHP&nbsp;and&nbsp;IMAP.\r\n<br \/>&nbsp;*&nbsp;Url:&nbsp;http:\/\/davidwalsh.name\/gmail-php-imap\r\n<br \/>&nbsp;*\/\r\n<br \/>\r\n<br \/>\/*&nbsp;Configuracion&nbsp;del&nbsp;servidor&nbsp;IMAP&nbsp;*\/\r\n<br \/><\/font><font color=\"#0000BB\">$hostname&nbsp;<\/font><font color=\"#007700\">=&nbsp;<\/font><font color=\"#DD0000\">'{imap.gmail.com:993\/imap\/ssl}INBOX'<\/font><font color=\"#007700\">;\r\n<br \/><\/font><font color=\"#0000BB\">$username&nbsp;<\/font><font color=\"#007700\">=&nbsp;<\/font><font color=\"#DD0000\">'davidwalshblog@gmail.com'<\/font><font color=\"#007700\">;\r\n<br \/><\/font><font color=\"#0000BB\">$password&nbsp;<\/font><font color=\"#007700\">=&nbsp;<\/font><font color=\"#DD0000\">'davidwalsh'<\/font><font color=\"#007700\">;\r\n<br \/>\r\n<br \/><\/font><font color=\"#FF8000\">\/*&nbsp;Intento&nbsp;de&nbsp;conexi\u00f3n&nbsp;*\/\r\n<br \/><\/font><font color=\"#0000BB\">$inbox&nbsp;<\/font><font color=\"#007700\">=&nbsp;<\/font><font color=\"#0000BB\">imap_open<\/font><font color=\"#007700\">(<\/font><font color=\"#0000BB\">$hostname<\/font><font color=\"#007700\">,<\/font><font color=\"#0000BB\">$username<\/font><font color=\"#007700\">,<\/font><font color=\"#0000BB\">$password<\/font><font color=\"#007700\">)&nbsp;or&nbsp;die(<\/font><font color=\"#DD0000\">'Cannot&nbsp;connect&nbsp;to&nbsp;Gmail:&nbsp;'&nbsp;<\/font><font color=\"#007700\">.&nbsp;<\/font><font color=\"#0000BB\">imap_last_error<\/font><font color=\"#007700\">());\r\n<br \/>\r\n<br \/><\/font><font color=\"#FF8000\">\/*&nbsp;Recuperamos&nbsp;los&nbsp;emails&nbsp;*\/\r\n<br \/><\/font><font color=\"#0000BB\">$emails&nbsp;<\/font><font color=\"#007700\">=&nbsp;<\/font><font color=\"#0000BB\">imap_search<\/font><font color=\"#007700\">(<\/font><font color=\"#0000BB\">$inbox<\/font><font color=\"#007700\">,<\/font><font color=\"#DD0000\">'ALL'<\/font><font color=\"#007700\">);\r\n<br \/>\r\n<br \/><\/font><font color=\"#FF8000\">\/*&nbsp;Si&nbsp;obtenemos&nbsp;los&nbsp;emails,&nbsp;accedemos&nbsp;uno&nbsp;a&nbsp;uno...&nbsp;*\/\r\n<br \/><\/font><font color=\"#007700\">if(<\/font><font color=\"#0000BB\">$emails<\/font><font color=\"#007700\">)&nbsp;{\r\n<br \/>\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#FF8000\">\/*&nbsp;variable&nbsp;de&nbsp;salida&nbsp;*\/\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$output&nbsp;<\/font><font color=\"#007700\">=&nbsp;<\/font><font color=\"#DD0000\">''<\/font><font color=\"#007700\">;\r\n<br \/>\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#FF8000\">\/*&nbsp;Colocamos&nbsp;los&nbsp;nuevos&nbsp;emails&nbsp;arriba&nbsp;*\/\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">rsort<\/font><font color=\"#007700\">(<\/font><font color=\"#0000BB\">$emails<\/font><font color=\"#007700\">);\r\n<br \/>\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#FF8000\">\/*&nbsp;por&nbsp;cada&nbsp;email...&nbsp;*\/\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$i<\/font><font color=\"#007700\">=<\/font><font color=\"#0000BB\">0<\/font><font color=\"#007700\">;\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;foreach(<\/font><font color=\"#0000BB\">$emails&nbsp;<\/font><font color=\"#007700\">as&nbsp;<\/font><font color=\"#0000BB\">$email_number<\/font><font color=\"#007700\">)&nbsp;{\r\n<br \/>\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#FF8000\">\/*&nbsp;Obtenemos&nbsp;la&nbsp;informaci\u00f3n&nbsp;espec\u00edfica&nbsp;para&nbsp;este&nbsp;email&nbsp;*\/\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$overview&nbsp;<\/font><font color=\"#007700\">=&nbsp;<\/font><font color=\"#0000BB\">imap_fetch_overview<\/font><font color=\"#007700\">(<\/font><font color=\"#0000BB\">$inbox<\/font><font color=\"#007700\">,<\/font><font color=\"#0000BB\">$email_number<\/font><font color=\"#007700\">,<\/font><font color=\"#0000BB\">0<\/font><font color=\"#007700\">);\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$message&nbsp;<\/font><font color=\"#007700\">=&nbsp;<\/font><font color=\"#0000BB\">imap_fetchbody<\/font><font color=\"#007700\">(<\/font><font color=\"#0000BB\">$inbox<\/font><font color=\"#007700\">,<\/font><font color=\"#0000BB\">$email_number<\/font><font color=\"#007700\">,<\/font><font color=\"#0000BB\">2<\/font><font color=\"#007700\">);\r\n<br \/>\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#FF8000\">\/*&nbsp;Mostramos&nbsp;la&nbsp;informaci\u00f3n&nbsp;de&nbsp;la&nbsp;cabecera&nbsp;del&nbsp;email&nbsp;*\/\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$output<\/font><font color=\"#007700\">.=&nbsp;<\/font><font color=\"#DD0000\">'&lt;li&gt;'<\/font><font color=\"#007700\">;\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$output<\/font><font color=\"#007700\">.=&nbsp;<\/font><font color=\"#DD0000\">'&lt;div&nbsp;class=\"header&nbsp;'<\/font><font color=\"#007700\">.(<\/font><font color=\"#0000BB\">$overview<\/font><font color=\"#007700\">[<\/font><font color=\"#0000BB\">0<\/font><font color=\"#007700\">]-&gt;<\/font><font color=\"#0000BB\">seen&nbsp;<\/font><font color=\"#007700\">?&nbsp;<\/font><font color=\"#DD0000\">'read'&nbsp;<\/font><font color=\"#007700\">:&nbsp;<\/font><font color=\"#DD0000\">'unread'<\/font><font color=\"#007700\">).<\/font><font color=\"#DD0000\">'\"&gt;'<\/font><font color=\"#007700\">;\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$output<\/font><font color=\"#007700\">.=&nbsp;<\/font><font color=\"#DD0000\">'&lt;span&nbsp;class=\"subject\"&gt;'<\/font><font color=\"#007700\">.<\/font><font color=\"#0000BB\">$overview<\/font><font color=\"#007700\">[<\/font><font color=\"#0000BB\">0<\/font><font color=\"#007700\">]-&gt;<\/font><font color=\"#0000BB\">subject<\/font><font color=\"#007700\">.<\/font><font color=\"#DD0000\">'&lt;\/span&gt;&nbsp;'<\/font><font color=\"#007700\">;\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$output<\/font><font color=\"#007700\">.=&nbsp;<\/font><font color=\"#DD0000\">'&lt;span&nbsp;class=\"from\"&gt;&lt;pre&gt;'<\/font><font color=\"#007700\">.<\/font><font color=\"#0000BB\">$overview<\/font><font color=\"#007700\">[<\/font><font color=\"#0000BB\">0<\/font><font color=\"#007700\">]-&gt;<\/font><font color=\"#0000BB\">from<\/font><font color=\"#007700\">.<\/font><font color=\"#DD0000\">'&lt;\/pre&gt;&lt;\/span&gt;'<\/font><font color=\"#007700\">;\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$output<\/font><font color=\"#007700\">.=&nbsp;<\/font><font color=\"#DD0000\">'&lt;span&nbsp;class=\"date\"&gt;on&nbsp;'<\/font><font color=\"#007700\">.<\/font><font color=\"#0000BB\">$overview<\/font><font color=\"#007700\">[<\/font><font color=\"#0000BB\">0<\/font><font color=\"#007700\">]-&gt;<\/font><font color=\"#0000BB\">date<\/font><font color=\"#007700\">.<\/font><font color=\"#DD0000\">'&lt;\/span&gt;'<\/font><font color=\"#007700\">;\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$output<\/font><font color=\"#007700\">.=&nbsp;<\/font><font color=\"#DD0000\">'&lt;\/div&gt;'<\/font><font color=\"#007700\">;\r\n<br \/>\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#FF8000\">\/*&nbsp;Mostramos&nbsp;el&nbsp;mensaje&nbsp;del&nbsp;email&nbsp;*\/\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$output<\/font><font color=\"#007700\">.=&nbsp;<\/font><font color=\"#DD0000\">'&lt;div&nbsp;class=\"message\"&nbsp;id=\"msg_'<\/font><font color=\"#007700\">.<\/font><font color=\"#0000BB\">$i<\/font><font color=\"#007700\">.<\/font><font color=\"#DD0000\">'\"&gt;&lt;pre&gt;'<\/font><font color=\"#007700\">.<\/font><font color=\"#0000BB\">$message<\/font><font color=\"#007700\">.<\/font><font color=\"#DD0000\">'&lt;\/pre&gt;&lt;\/div&gt;'<\/font><font color=\"#007700\">;\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$output<\/font><font color=\"#007700\">.=&nbsp;<\/font><font color=\"#DD0000\">'&lt;\/li&gt;'<\/font><font color=\"#007700\">;\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#0000BB\">$i<\/font><font color=\"#007700\">++;\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}\r\n<br \/>\r\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;<\/font><font color=\"#DD0000\">'&lt;ul&nbsp;class=\"emails\"&gt;'<\/font><font color=\"#007700\">.<\/font><font color=\"#0000BB\">$output<\/font><font color=\"#007700\">.<\/font><font color=\"#DD0000\">'&lt;\/ul&gt;'<\/font><font color=\"#007700\">;\r\n<br \/>}&nbsp;\r\n<br \/>\r\n<br \/><\/font><font color=\"#FF8000\">\/*&nbsp;Cerramos&nbsp;la&nbsp;connexi\u00f3n&nbsp;*\/\r\n<br \/><\/font><font color=\"#0000BB\">imap_close<\/font><font color=\"#007700\">(<\/font><font color=\"#0000BB\">$inbox<\/font><font color=\"#007700\">);\r\n<br \/><\/font><font color=\"#0000BB\">?&gt;<\/font>\r\n<\/font><\/pre>\n<p>Aseg\u00farate que tienes habilitado el servicio IMAP en tu cuenta de GMAIL.<\/p>\n<ol>\n<li> Entra a tu cuenta de Gmail.<\/li>\n<li> Accede el panel de \u00abConfiguraci\u00f3n\u00bb.<\/li>\n<li> Selecciona la pesta\u00f1a <strong>Reenv\u00edo y correo POP\/IMAP<\/strong>.<\/li>\n<li> En la opci\u00f3n de \u00abAcceso IMAP:\u00bb escoge la opci\u00f3n de \u201cHabilitar IMAP\u201d.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-439\" title=\"Habilitar IMAP en Gmail\" src=\"http:\/\/bezerik.es\/me\/wp-content\/uploads\/2009\/07\/habilitar-IMAP-gmail.gif\" alt=\"Habilitar IMAP en Gmail\" width=\"677\" height=\"582\" srcset=\"http:\/\/bezerik.es\/me\/wp-content\/uploads\/2009\/07\/habilitar-IMAP-gmail.gif 677w, http:\/\/bezerik.es\/me\/wp-content\/uploads\/2009\/07\/habilitar-IMAP-gmail-300x257.gif 300w\" sizes=\"(max-width: 677px) 100vw, 677px\" \/><\/p>\n<h3>Demo<\/h3>\n<p>Como siempre, David Walsh nos sorprende con un <a href=\"http:\/\/davidwalsh.name\/dw-content\/php-gmail.php\" target=\"_blank\" rel=\"nofollow\">ejemplo<\/a> en donde aprovecha a\u00f1adir Mootools para conseguir un efecto 2.0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hasta dia de hoy desconoc\u00eda por completo la extensi\u00f3n IMAP pero no imaginaba que recuperar los mensajes de correo electr\u00f3nico de mi cuenta de Gmail usando PHP fuese tan sencillo. El c\u00f3digo\u00a0 PHP que obtiene los correos electr\u00f3nicos de Gmail:<\/p>\n","protected":false},"author":1,"featured_media":636,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[10],"tags":[318,317,320,316,338,343,339,315,319,321],"_links":{"self":[{"href":"http:\/\/bezerik.es\/me\/wp-json\/wp\/v2\/posts\/437"}],"collection":[{"href":"http:\/\/bezerik.es\/me\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bezerik.es\/me\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bezerik.es\/me\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/bezerik.es\/me\/wp-json\/wp\/v2\/comments?post=437"}],"version-history":[{"count":21,"href":"http:\/\/bezerik.es\/me\/wp-json\/wp\/v2\/posts\/437\/revisions"}],"predecessor-version":[{"id":626,"href":"http:\/\/bezerik.es\/me\/wp-json\/wp\/v2\/posts\/437\/revisions\/626"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/bezerik.es\/me\/wp-json\/wp\/v2\/media\/636"}],"wp:attachment":[{"href":"http:\/\/bezerik.es\/me\/wp-json\/wp\/v2\/media?parent=437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bezerik.es\/me\/wp-json\/wp\/v2\/categories?post=437"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bezerik.es\/me\/wp-json\/wp\/v2\/tags?post=437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}