|
Usar PHPMailer desde una página Web |
Bueno, aqui les explicaré como usar PHPMailer el cual nos permitirá enviar correos de la manera mas sencilla, unas de las características de este script son:
Es uno de los códigos mas populares para enviar correos en PHP.
Es usado por muchos famosos proyectos de código abierto como WordPress, Drupal, Yii, Joomla y muchos otros.
Permite enviar correos en texto plano o HTML
Permite enviar archivos adjuntos
Permite enviar correos usando un servidor SMTP y con autentificación SSL y TLS
Permite enviar correos multiples y con copia oculta
Soporta el formato UTF-8, 8 bits, base64, binario
Y mucho mas.
Ahora empezemos….
Bajamos el script desde github: https://github.com/Synchro/PHPMailer
Descomprimimos el archivo en una carpeta llamada /phpmailer
Creamos nuestro archivo llamado enviar_correo.php
SetFrom("me@micodigophp.com", "Mi Codigo PHP");
//Usamos el AddReplyTo para decirle al script a quien tiene que responder el correo
$correo->AddReplyTo("me@micodigophp.com","Mi Codigo PHP");
//Usamos el AddAddress para agregar un destinatario
$correo->AddAddress("destino@correo.com", "Robot");
//Ponemos el asunto del mensaje
$correo->Subject = "Mi primero correo con PHPMailer";
/*
* Si deseamos enviar un correo con formato HTML utilizaremos MsgHTML:
* $correo->MsgHTML("Mi Mensaje en HTML");
* Si deseamos enviarlo en texto plano, haremos lo siguiente:
* $correo->IsHTML(false);
* $correo->Body = "Mi mensaje en Texto Plano";
*/
$correo->MsgHTML("Mi Mensaje en HTML");
//Si deseamos agregar un archivo adjunto utilizamos AddAttachment
$correo->AddAttachment("images/phpmailer.gif");
//Enviamos el correo
if(!$correo->Send()) {
echo "Hubo un error: " . $correo->ErrorInfo;
} else {
echo "Mensaje enviado con exito.";
}
SetFrom("me@micodigophp.com", "Mi Codigo PHP");
//Usamos el AddReplyTo para decirle al script a quien tiene que responder el correo
$correo->AddReplyTo("me@micodigophp.com","Mi Codigo PHP");
//Usamos el AddAddress para agregar un destinatario
$correo->AddAddress("destino@correo.com", "Robot");
//Ponemos el asunto del mensaje
$correo->Subject = "Mi primero correo con PHPMailer";
/*
* Si deseamos enviar un correo con formato HTML utilizaremos MsgHTML:
* $correo->MsgHTML("Mi Mensaje en HTML");
* Si deseamos enviarlo en texto plano, haremos lo siguiente:
* $correo->IsHTML(false);
* $correo->Body = "Mi mensaje en Texto Plano";
*/
$correo->MsgHTML("Mi Mensaje en HTML");
//Si deseamos agregar un archivo adjunto utilizamos AddAttachment
$correo->AddAttachment("images/phpmailer.gif");
//Enviamos el correo
if(!$correo->Send()) {
echo "Hubo un error: " . $correo->ErrorInfo;
} else {
echo "Mensaje enviado con exito.";
}
?>
El código que hemos utilizado nos ha permitido enviar un mensaje en HTML y adjuntando un archivo.
IMPORTANTE: Si desean enviar el mensaje en texto plano, deben de reemplazar $correo->MsgHTML() por:
$correo->IsHTML(false);
$correo->Body = "Mi mensaje en Texto Plano";
$correo->IsHTML(false);
$correo->Body = "Mi mensaje en Texto Plano";
Si deseas utilizar un servidor SMTP, tenemos que agregar unas cuantas lineas despues de crear la instancia
$correo = new PHPMailer();
//Le decimos al script que utilizaremos SMTP
$correo->IsSMTP();
//Activaremos la autentificación SMTP el cual se utiliza en la mayoría de casos
$correo->SMTPAuth = true;
//Especificamos la seguridad de la conexion, puede ser SSL, TLS o lo dejamos en blanco si no sabemos
$correo->SMTPSecure = '';
//Especificamos el host del servidor SMTP
$correo->Host = "mail.misitio.com";
//Especficiamos el puerto del servidor SMTP
$correo->Port = 25;
//El usuario del servidor SMTP
$correo->Username = "usuario@misitio.com";
//Contraseña del usuario
$correo->Password = "mipassword";
//Le decimos al script que utilizaremos SMTP
$correo->IsSMTP();
//Activaremos la autentificación SMTP el cual se utiliza en la mayoría de casos
$correo->SMTPAuth = true;
//Especificamos la seguridad de la conexion, puede ser SSL, TLS o lo dejamos en blanco si no sabemos
$correo->SMTPSecure = '';
//Especificamos el host del servidor SMTP
$correo->Host = "mail.misitio.com";
//Especficiamos el puerto del servidor SMTP
$correo->Port = 25;
//El usuario del servidor SMTP
$correo->Username = "usuario@misitio.com";
//Contraseña del usuario
$correo->Password = "mipassword";
Con ese ejemplo ya podemos usar GMail como servidor SMTP y enviar correos desde nuestra web, aqui un ejemplo completo:
IsSMTP();
$correo->SMTPAuth = true;
$correo->SMTPSecure = 'tls';
$correo->Host = "smtp.gmail.com";
$correo->Port = 587;
$correo->Username = "micuenta@gmail.com";
$correo->Password = "mipassword";
$correo->SetFrom("micuenta@gmail.com", "Mi Codigo PHP");
$correo->AddReplyTo("micuenta@gmail.com","Mi Codigo PHP");
$correo->AddAddress("destino@correo.com", "Jorge");
$correo->Subject = "Mi primero correo con PHPMailer";
$correo->MsgHTML("Mi Mensaje en HTML");
$correo->AddAttachment("images/phpmailer.gif");
if(!$correo->Send()) {
echo "Hubo un error: " . $correo->ErrorInfo;
} else {
echo "Mensaje enviado con exito.";
}
IsSMTP();
$correo->SMTPAuth = true;
$correo->SMTPSecure = 'tls';
$correo->Host = "smtp.gmail.com";
$correo->Port = 587;
$correo->Username = "micuenta@gmail.com";
$correo->Password = "mipassword";
$correo->SetFrom("micuenta@gmail.com", "Mi Codigo PHP");
$correo->AddReplyTo("micuenta@gmail.com","Mi Codigo PHP");
$correo->AddAddress("destino@correo.com", "Jorge");
$correo->Subject = "Mi primero correo con PHPMailer";
$correo->MsgHTML("Mi Mensaje en HTML");
$correo->AddAttachment("images/phpmailer.gif");
if(!$correo->Send()) {
echo "Hubo un error: " . $correo->ErrorInfo;
} else {
echo "Mensaje enviado con exito.";
}
?>
Con eso concluimos este tutorial, si desean uno en particular, haganlo saber en sus comentarios.
Notas: Gracias a @AnivalAlvarez por su sugerencia, nos ha proporcionado dos funciones que de seguro serán importantes para ustedes.
// Timeout para el servidor de correos. Por defecto es valor es '10'
$correo->Timeout=30;
// Codificación UTF8. Obligado utilizarlo en aplicaciones en Español
$correo->CharSet = 'UTF-8';
// Timeout para el servidor de correos. Por defecto es valor es '10'
$correo->Timeout=30;
// Codificación UTF8. Obligado utilizarlo en aplicaciones en Español
$correo->CharSet = 'UTF-8'; |
URL DE REFERENCIA: http://www.micodigophp.com/como-usar-phpmailer-sin-morir-en-el-intento/ |