Configurar PHPMailer con smtp, mail o sendmail

PHPMailer es una Clase para realizar envios de correos desde cualquier plataforma, esta clase te permite enviar uno o varios correos utilizando pocas lineas de código, usando el metodo de envio por SMTP, la función mail de PHP, o Sendmail, además de enviar mensajes de texto y HTML.
Si deseas crear aplicaciones que realizan envios masivos y deseas que esos envios no vayan a la carpeta de span, pues PHPMailer es la clase que necesitas, muchos sistemas de envios masivos estan realizados con esta clase.

Aquí les dejo un ejemplo simple, para esto primero tienen que bajarse desde aquí Descargar PHPMailer o visitar su Página principal PHPmailer, una ves hecho esto crean un archivo, y pegan el siguiente código, claro reemplazando los datos verdaderos de dominio, correo y contraseña.

PHPMailer con método SMTP

<?php
require '../class.phpmailer.php';
try {
	$mail = new PHPMailer(true); //Nueva instancia, con las excepciones habilitadas
	$body             = '<p>Este es un Mensaje de Prueba</p>';
	$body             = preg_replace('/\\\\/','', $body); //Escapar backslashes
	$mail->IsSMTP();                           // Usamos el metodo SMTP de la clase PHPMailer
	$mail->SMTPAuth   = true;                  // habilitado SMTP autentificación
	$mail->Port       = 25;                    // puerto del server SMTP
	$mail->Host       = "mail.midominio.com"; // SMTP server
	$mail->Username   = "user@midominio.com";     // SMTP server Usuario
	$mail->Password   = "xxxxxx";            // SMTP server password
	$mail->From       = "user@midominio.com"; //Remitente de Correo
	$mail->FromName   = "Name"; //Nombre del remitente
	$to = "correoaenviar@hotmail.com"; //Para quien se le va enviar
	$mail->AddAddress($to);
	$mail->Subject  = "Mi primer mensaje con PhpMailer"; //Asunto del correo
	$mail->MsgHTML($body);
	$mail->IsHTML(true); // Enviar como HTML
	$mail->Send();//Enviar
	echo 'El Mensaje a sido enviado.';
} catch (phpmailerException $e) {
	echo $e->errorMessage();//Mensaje de error si se produciera.
}
?>

PHPMailer con método MAIL

<?php
require '../class.phpmailer.php';
try {
	$mail = new PHPMailer(true); //Nueva instancia, con las excepciones habilitadas
	$body             = '<p>Este es un Mensaje de Prueba</p>';
	$body             = preg_replace('/\\\\/','', $body); //Escapar backslashes
	$mail->IsMail();                           // Usamos el metodo SMTP de la clase PHPMailer
	$mail->SMTPAuth   = false;                  // habilitado SMTP autentificación
	$mail->Port       = 25;                    // puerto del server SMTP
	$mail->Host       = "mail.midominio.com"; // SMTP server
	$mail->From       = "user@midominio.com"; //Remitente de Correo
	$mail->FromName   = "Name"; //Nombre del remitente
	$to = "correoaenviar@hotmail.com"; //Para quien se le va enviar
	$mail->AddAddress($to);
	$mail->Subject  = "Mi primer mensaje con PhpMailer"; //Asunto del correo
	$mail->MsgHTML($body);
	$mail->IsHTML(true); // Enviar como HTML
	$mail->Send();//Enviar
	echo 'El Mensaje a sido enviado.';
} catch (phpmailerException $e) {
	echo $e->errorMessage();//Mensaje de error si se produciera.
}
?>

Configurar phpmailer metodo smtp

Documentación de PHPMailer

(Visited 4.901 times, 9 visits today)
Puedes saltar al final y dejar una respuesta. Hacer ping no está permitido actualmente.
  • clr

    los archivos que se descomprimieron de PHPMailer donde se guardan?

  • Luiyiana

    Hice lo indicado pero me sale el siguiente error y no se que puede ser
    SMTP Error: Could not connect to SMTP host.

    • admin

      Ese mensaje es por que te tienes que configurar tu php.ini, busca estas lineas y cambialo con un dominio valido, luego reinicia el apache.

      [mail function]
      ; For Win32 only.
      SMTP = mail.midominio.com
      smtp_port = 25

      Lo que va hacer es enviar el correo a traves del dominio que ingreses.

  • eduardo

    mi estimado esto es lo que andaba buscando mil gracias

  • leonardo

    Amigo esto esta todo ok pero en caso de que no quiera utilizar

    $mail->SMTPAuth = true; // habilitado SMTP autentificación
    $mail->Port = 25; // puerto del server SMTP
    $mail->Host = “mail.midominio.com”; // SMTP server
    $mail->Username = “guillermo@midominio.com”; // SMTP server Usuario
    $mail->Password = “xxxxxx”;

    cómo sería, es decir para enviarlo entiendo que exciste una opción qu ees mail no? me gustaría saber.

    • admin

      Pues solo usarías:
      $mail->IsMail();
      $mail->SMTPAuth = false; // habilitado SMTP autentificación
      $mail->Port = 25; // puerto del server SMTP
      $mail->Host = “mail.midominio.com”; // SMTP server

  • Perdón ese era otro ejemplo que tampoco funciona:

    Estos son los mensajes de error que me salen:

    ( ! ) Warning: require(../class.phpmailer.php): failed to open stream: No such file or directory in
     C:wamp64www- Enviar_con_phpmailerenvio_ce_via_SMTP_desarrollowebtutorial.php on line 7
    Call Stack
    #	Time	Memory	Function	Location
    1	0.0008	242648	{main}( )	...envio_ce_via_SMTP_desarrollowebtutorial.php:0
     
    ( ! ) Fatal error: require(): Failed opening required '../class.phpmailer.php' (include_path='.;C:phppear') in 
    C:wamp64www- Enviar_con_phpmailerenvio_ce_via_SMTP_desarrollowebtutorial.php on line 7
    Call Stack
    #	Time	Memory	Function	Location
    1	0.0008	242648	{main}( )	...envio_ce_via_SMTP_desarrollowebtutorial.php:0

    El archivo “envio_ce_via_SMTP_desarrollowebtutorial.php” se encuentra en la misma carpeta que en la que se encuentra la carpeta “phpmailer” y sucede lo mismo si lo pongo dentro de la misma carpeta “phpmailer”

    Espero me puedan ayudar

    Gracias !!!

    • Guillermo

      La respuesta esta en los mensajes de error ( ! ) Warning: require(../class.phpmailer.php): failed to open stream No lo encuentra, lee la documentación require
      La estructura de carpeta del ejemplo es:
      PHPMailer/class.phpmailer.php
      PHPMailer/test/ejemplo.php