Espacio Daycry - Espacio de programación

  • Inicio
  • Categorias
    • - Codeigniter
    • - Symfony
    • - HTML5
    • - Linux / Ubuntu
    • - PHP
    • - Jquery
  • PortFolio - Proyectos Codeiniter
    • - Encuestas Online
    • - Estadísticas - GLPI
    • - Gestión de colas
    • - Web Service - REST
Mostrando entradas con la etiqueta Email. Mostrar todas las entradas
Mostrando entradas con la etiqueta Email. Mostrar todas las entradas

lunes, 14 de septiembre de 2015

Descargar Emails con POP3 y PHP

No hay comentarios : Posted by daycry at 15:25 Labels: Email , PHP , POP3
Descargar emails con POP3 y PHP es una operación muy sencilla y que solo requerirá el conocimiento de dos o tres funciones. De esta forma podremos crear una página PHP que liste nuestros emails descargandolos con POP3.

Lo primero es conocer la función imap_open. Esta función es la que nos permitirá conectarnos con el servidor de email vía POP3.
La función imap_open a parte de POP3 también permite descargas de email mediante IMAP y de news mediante NNTP.
La función imap_open tiene la siguiente estructura:
imap_open($mailbox, $username, $password [, $options, $retries, $params]
De los tres parámetros obligatorios de imap_open tenemos:

  • mailbox, buzón que contiene el email que nos queremos descargar con POP3.
  • username, Nombre del usuario que se conecta al buzón. Suele ser una dirección de email.
  • password, la contraseña del usuario.
Así, que lo primero será declarar los valores de estos parámetros en variables:
$hostname = '{mail.dominio.com/notls}';
$username = 'usuario@dominio.com';
$password = 'mipassword';
El que tiene más complicación es el nombre del mailbox. La estructura del mailbox suele ser la siguiente:
{servidor:puerto/flags}carpeta
En nuestro caso mail.dominio.com es el nombre del servidor. El puerto no lo indicamos, aunque en el caso de acceder vía POP3 utilizaremos el 110. El parámetro /notls son las opciones de conexión. En este caso al utilizar /notls indicamos al servidor que no inicie una sesión segura (por simplicidad). Tampoco hemos indicado la carpeta de la que queremos recuperar los emails mediante POP3. Al no ponerla se toma INBOX como por defecto.

Pasemos a conectarnos con imap_open:
$inbox = imap_open($hostname,$username,$password) or die('Ha fallado la conexión: ' . imap_last_error());
La sentencia or die permite gestionar el caso de fallo en la conexión.

Una vez que tenemos la conexión pasamos a listar los emails. Para ello tenemos varias funciones, aunque nosotros nos centraremos en imap_search() esta función busca los emails bajo un determinado criterio. Nosotros utilizaremos el criterio "ALL", es decir, todos los emails.
$emails = imap_search($inbox,'ALL');
Ahora tendremos un array en $emails con todos los email de nuestro inbox. Es por ello que los recorreremos mediante un bucle for-each.

La estructura del email tiene varias partes, pero nosotros nos centraremos en la cabecera. En la cabecera es dónde va la información de la persona que nos lo envió, el tema del email,... Para recuperar la cabecera de un email utilizamos la función imap_fecth_overview. A esta función le pasamos el buzón y el email del que queremos recuperar la cabecera.
foreach($emails as $email_number) {    
    $overview = imap_fetch_overview($inbox,$email_number,0);
    $salida.= 'Tema: '.$overview[0]->subject;
    $salida.= 'De: '.$overview[0]->from;    
  }
El resultado de ejecutar imap_fecth_overview es un array con un montón de propiedades. De estas propiedades nos quedamos con subject y from para mostrarlas por pantalla.

Ahora que hemos listado las cabeceras de todos los mensajes de nuestro buzón lo que haremos será el cerrar la conexión de nuestro buzón de emails mediante la función imap_close.
imap_close($inbox);

Read More

Descargar Emails con IMAP y PHP

No hay comentarios : Posted by daycry at 15:11 Labels: Email , IMAP , PHP
En el artículo Descargar emails con POP3 y PHP ya vimos como acceder a nuestro email mediante POP3. Ahora vamos a ver qué pequeñas modificaciones hay que hacer para acceder a un servidor vía IMAP.

La principal modificación está en la definición del hostname que utilicemos al establecer la conexión con imap_open. Los servidores de correo suelen atender el protocolo IMAP por el puerto 143.
$hostname = '{aulambra.com:143/imap/ssl}INBOX';
$username = 'usuario@aulambra.com';
$password = 'password';
 
$inbox = imap_open($hostname,$username,$password) or die('Ha fallado la conexión: ' . imap_last_error());
En este caso este servidor de email necesita de una conexión segura. Es por ello que utilizamos el flag /ssl.
El resto de pasos son iguales que con POP3. Hacemos el filtrado de mensajes mediante imap_search:
$emails = imap_search($inbox,'ALL');
El siguiente paso será recorrerlos accediendo a su cabecera con imap_fetch_overview:
foreach($emails as $email_number) {
  $overview = imap_fetch_overview($inbox,$email_number,0);
  $salida.= 'Tema: '.$overview[0]->subject;
  $salida.= 'De: '.$overview[0]->from;
}
Y por último no se nos puede olvidar la conexión con imap_close:
imap_close($inbox);

Descargar correo de Gmail

Lo primero que tenemos que hacer es confirmar que tenemos activado el acceso por IMAP en nuestra cuenta de GMail. Para ello tenemos que ir a:
Mail Settings » Forwarding and POP/IMAP » IMAP Access
Seleccionamos la opción Enable IMAP y guardamos los cambios.
Lo segundo que tenemos que saber es que al servidor de IMAP de GMail se accede mediante la siguiente configuración:
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'usuario@gmail.com';
$password = 'password';
Hay que tener cuidado ya que se utiliza el puerto 993 para acceder por IMAP.
Read More

jueves, 7 de agosto de 2014

Clase Email PHPMailer - Codeigniter

No hay comentarios : Posted by daycry at 10:45 Labels: Codeigniter , Email , librerías , PHPMailer
Todos hemos visto que casi el 100% de las páginas web, tienen algún sistema de correo electrónico implementado, a pesar de que es un servicio muy útil y cómodo, también es un servicio muy fácil de implementar.

En siguiente ejemplo es el código que necesitamos para implementar un sistema de email.
Simplemente copiando y pegando, y modificando los parámetros por los que necesitéis ya tendréis un sistema de email basado en Codeigniter.


Antes de todo tendríamos que descargar las librerías de PHPMailer desde la web.
Descargar

Una vez tenemos descargado los ficheros, los copiamos dentro de la carpeta third_party, que se encuentra dentro de nuestra aplicación.

Seguidamente creamos nuestra librería que cargará la librería PHPMailer en nuestro proyecto.

require_once APPPATH."/third_party/PHPMailer/class.phpmailer.php"; 
 
class My_PHPMailer extends PHPMailer { 
    public function __construct() { 
        parent::__construct(); 
    } 
}

Este código lo deberemos de guardar en la carpeta libraries con el nombre de: my_phpmailer.php

Definitivamente este es el código que deberemos de poner en nuestro controlador.


$textEmail = "<p>Contenido del <i>email</i> en formato <b>html</b></p>";
  
$this->load->library('my_phpmailer');

$this->my_phpmailer->IsSMTP(); // establecemos que utilizaremos SMTP
$this->my_phpmailer->IsHTML(true); // indicamos si el contenido es en html
$this->my_phpmailer->SMTPAuth   = true;
$this->my_phpmailer->Host       = ""; //indicar el servidor smtp
$this->my_phpmailer->Port       = 25; //normalmente es el 25                 
$this->my_phpmailer->Username   = ""; //usuario smtp
$this->my_phpmailer->Password   = ""; //password      
$this->my_phpmailer->SetFrom('cuenta@correo.es', "Alias del correo");  
$this->my_phpmailer->Subject    = "Subject"; 
$this->my_phpmailer->Body      = $textEmail;
   
$this->my_phpmailer->AddAddress("dirección de correo", "Alias");
$this->my_phpmailer->AddCC("dirección en copia", 'Alias');

if(!$this->my_phpmailer->Send()) {
 log_message('info', "error envía de email" . $this->my_phpmailer->ErrorInfo);
} else {
 log_message('info', "enviado correctamente");
   }

Como podéis comprobar carga la librería que hemos creado que es la que se encarga de cargar las clases de PHPMailer, y nos permite utilizar esta clase como si fuera una librería interna de Codeigniter, con la misma sintaxis.

$this->my_phpmailer //llamando al método que nos interese



Read More
Entradas antiguas Inicio
Suscribirse a: Entradas ( Atom )

Sígueme en las Redes Sociales



Follow @daycry9

Daycry web


Donaciones

Suscribirse a

Entradas
Atom
Entradas
Comentarios
Atom
Comentarios

Datos personales

daycry
Ver todo mi perfil

Entradas populares

  • Crear archivos PHP ejecutables por terminal UBUNTU
    En este apartado vamos a explicar como ejercutar archivos PHP a través del terminal de Ubuntu. Lo primero que tendríamos que hacer es inst...
  • Pâginación PHP con Librería Zebra Pagination
    En este blog voy a comentar un tema que se utilizan en casi todas las páginas web que existen, y es el tema de la paginación. La paginaci...
  • PHPExcel - Codeigniter
    Este post trata de la integración de la librería PHPExcel en Codeigniter, aunque se podría aplicar a cualquier librería, como por ejemplo mP...
  • PHP- Operaciones con fechas - Sumar Horas, minutos y segundos
    Ejemplo para añadir o sumar un número determinado de hora/s, minuto/s, segundo/s a una fecha en php. Con la función strtotime se puede ...
  • Codeigniter - Múltiples conexiones a base de datos
    Este tema es uno de los temas primordiales sobre el framework Codeigniter, ya que en alguna ocación nos hemos visto obligados a recoger dato...

© Espacio Daycry - Espacio de programación 2013 . Powered by Bootstrap , Blogger templates and RWD Testing Tool