Archivo para la Categoría "► PHP"

Enviar correo electrónico con PHP – PHPMailer

Si, alguna vez necesitamos enviar un correo electrónico con PHP, gracias a la recomendación de http://twitter/ivonsue conocí una librería de PHP, llamada PHPMailer; la cual facilita en definitivo el envió de email con PHP; entre sus características tenemos:

  • La opción de enviar datos adjuntos.
  • Elegir Servidor SMTP.
  • Tipo de Seguridad SMTP.
  • Cuerpo del mensaje personalizado con HTML.
  • Cuenta a la que se responderá el email.
  • etc…

En fin, sus bondades son muchas, pasemos a lo que nos importa.

Crear pagina PHP que envié correo utilizando una cuenta de terra.com.mx

1.- Nos creamos una cuenta en terra.com.mx especialmente para enviar correos desde allí.

2.- Bajamos la librería de PHPMailer de aqui

3.- Levantamos nuestro servidor ( en este caso utilizo XAMPP ).

4.- Creamos un archivo php con lo siguiente:

   1: <?php
   2:     require("class.phpmailer.php");
   3:     $mail             = new PHPMailer();
   4:     $mail->IsSMTP();
   5:     $mail->SMTPAuth   = true;
   6:     //$mail->SMTPSecure = "ssl";
   7:     $mail->Host       = "smtp.terra.com.mx";
   8:     $mail->Port       = 587;
   9:     $mail->Username   = 'micorreodeterra@terra.com.mx';
  10:     $mail->Password   = "myPassWord";
  11:     //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  12:     //====== DE QUIEN ES ========
  13:     $mail->From       = "micorreodeterra@terra.com.mx";
  14:     $mail->FromName   = "Mi Nombre";
  15:     $mail->AddAttachment("images/foto.jpg", "foto_regalo.jpg"); //Archivo adjunto
  16:     //====== PARA QUIEN =========
  17:     $mail->Subject    = "Test Mail";
  18:     $mail->AddAddress("juanscutiaa@terra.com.mx","Para ti juan");
  19:     $mail->AddAddress("albertinn@hotmail.com","Para ti alberto");
  20:     
  21:     //Cuerpo del mensaje
  22:     $mail->Body      = "HOLA ESTO ES UNA PRUEBA";
  23:     $mail->Send();
  24: ?>

5.- Colocamos nuestro archivo php en la misma carpeta que los archivos class.phpmailer.php y class.smtp.php que descargamos de la pagina de phpMailer.

image

6.- Para probar nuestra pagina basta con abrir nuestro explorador e ingresar la dirección de nuestra pagina que acabamos de hacer.

«Por ultimo me gustaría explicar un poco el código de la pagina para no dejar alguna duda, a mi parecer es bastante sencillo pero quien sabe 😉 »

En la línea:

   1: require("class.phpmailer.php");

Simplemente “importamos” los métodos necesarios de la clase phpmailer

 

En la línea:

   1: $mail             = new PHPMailer();

Creamos un objetos de tipo PHPMailer, para poder interactuar con sus

métodos.

En las líneas:

   1: $mail->IsSMTP();
   2:     $mail->SMTPAuth   = true;
   3:     //$mail->SMTPSecure = "ssl";
   4:     $mail->Host       = "smtp.terra.com.mx";
   5:     $mail->Port       = 587;
   6:     $mail->Username   = 'micorreodeterra@terra.com.mx';
   7:     $mail->Password   = "myPassWord";

Configuramos el SMTP de terra.com.mx  😉 colocamos los datos de nuestra cuenta de terra.

En las líneas:

   1: //====== DE QUIEN ES ========
   2: $mail->From       = "micorreodeterra@terra.com.mx";
   3: $mail->FromName   = "Mi Nombre";
   4: $mail->AddAttachment("images/foto.jpg", "foto_regalo.jpg"); //Archivo adjunto
   5: //====== PARA QUIEN =========
   6: $mail->Subject    = "Test Mail";
   7: $mail->AddAddress("juanscutiaa@terra.com.mx","Para ti juan");
   8: $mail->AddAddress("albertinn@hotmail.com","Para ti alberto");

Configuramos departe de quien es el correo y si deseamos agregar algun archivo adjunto como en este caso una foto que se encuentra en la carpeta images, entonces haremos uso del método AddAttachment , de igual forma colocamos el Asunto del mensaje y los distintos destinatarios, si deseamos agregar mas destinarios simplemente lo hacemos con el método AddAddress.

Ya por ultimo en las líneas:

   1: //Cuerpo del mensaje
   2:     $mail->Body      = "HOLA ESTO ES UNA PRUEBA";
   3:     $mail->Send();

Escribimos el cuerpo del mensaje –>Body y enviamos el correo con –> Send()

Si desean tener una mayor seguridad de que el correo se envió correctamente pueden agregar una condición de la siguiente forma:

   1:  
   2: if($mail->Send()) {
   3: echo "Mensaje enviado correctamente";
   4: } else {
   5: echo "Error al enviar mensaje: " . $mail->ErrorInfo;
   6: }

Si todo sale correctamente ustedes verían el correo algo similar a esto:

image

*Es muy importante tomar en cuenta que este ejemplo es inseguro ya que al dejar en “texto plano” la contraseña de la cuenta, esta podría ser leída con facilidad.

Gracias Sue 🙂

Descargar archivos fuentes

 

Update: 21-Marzo-2011

Si desean agregar un mensaje que acompañe el mail, basta con agregar las siguientes líneas:

   1: $htmlBody = "<html><head><title>HTML Email</title></head><body>
<br /><h2>Titulo</h2><p>Esto es un link
<a href=\https://darkchicles.wordpress.com\
title=\"Blog darkchicles\">Da clic para visitar el blog</a>
Tu puedes colocar etiquetas html como lo quieras</p>"
;

   2:  

   3:    $mail->Body=$htmlBody;

   4:    $mail->isHTML(true);

Body, es el cuerpo del mail, allí podremos ocupar código html.

 

Mas info:

Uso de la clase PHPMailer

PHP Mailer Tutorial (en ingles)

Enviar email con PHPMailer utilizando tu cuenta de Gmail

Otro ejemplo para enviar correos con PHPMailes desde tu propio smtp

Configurar Outlook 2007 con cuenta de hotmail

PHPM@iler: http://phpmailer.worxware.com/

Anuncios

Nube de etiquetas