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 = "[email protected]"; // SMTP server Usuario
$mail->Password = "xxxxxx"; // SMTP server password
$mail->From = "[email protected]"; //Remitente de Correo
$mail->FromName = "Name"; //Nombre del remitente
$to = "[email protected]"; //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.
}
?> |
<?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 = "[email protected]"; // SMTP server Usuario
$mail->Password = "xxxxxx"; // SMTP server password
$mail->From = "[email protected]"; //Remitente de Correo
$mail->FromName = "Name"; //Nombre del remitente
$to = "[email protected]"; //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 = "[email protected]"; //Remitente de Correo
$mail->FromName = "Name"; //Nombre del remitente
$to = "[email protected]"; //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.
}
?> |
<?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 = "[email protected]"; //Remitente de Correo
$mail->FromName = "Name"; //Nombre del remitente
$to = "[email protected]"; //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.
}
?>
Documentación de PHPMailer
los archivos que se descomprimieron de PHPMailer donde se guardan?
Ejemplo lo guardas en: http://localhost/phpmailer/ y el script de prueba lo guardas en http://localhost/phpmailer/examples/mail.php
Hice lo indicado pero me sale el siguiente error y no se que puede ser
SMTP Error: Could not connect to SMTP host.
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.
Lo que va hacer es enviar el correo a traves del dominio que ingreses.
¿dónde encuentro ese fichero php.ini? ¿Hay diferencia si mi servidor es linux (en este caso de 1&1.es)?
Hola Kyo, en un hosting linux debe funcionar normal, pero primero prueba con estos ejemplos http://php.net/manual/es/function.mail.php o http://faq.1and1.es/programacion/php_mail_explained/2.html para que descartes el problema.
mi estimado esto es lo que andaba buscando mil gracias
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 = “[email protected]”; // 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.
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:
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 !!!
La respuesta esta en los mensajes de error
( ! ) Warning: require(../class.phpmailer.php): failed to open stream
No lo encuentra, lee la documentación requireLa estructura de carpeta del ejemplo es:
PHPMailer/class.phpmailer.php
PHPMailer/test/ejemplo.php