Enviar correo desde formulario utilizando phpmailer
En este tutorial te informamos como es que se debe configurar los formularios para poder mandar correo en servidores compartidos
Por seguridad, los envios de formularios deberán utilizar la autenticación smtp tal y como se configura en un cliente de correo Outlook.
La gran mayoría de personas que programan en PHP, utilizan la función mail() para realizar envíos, ya sean simples o complejos. El problema está cuando los correos destinos tienen habilitada la verificación. Esta es mucho más simple por su compatibilidad y facilidad de uso con MySQL.
Por suerte, existen clases como PHPMailer, que nos permiten realizar estos mismos envíos por el puerto y smtp que queramos, creando una aplicación mucho más potente y con la posibilidad de tener un mejor control de los envíos al existir reportes de correo.
PHPMailer es una clase de PHP gratuita.
Este es un ejemplo de como funciona la clase phpmailer:
<? require("class.phpmailer.php"); $mail = new PHPMailer(); //Luego tenemos que iniciar la validación por SMTP: $mail->IsSMTP(); $mail->SMTPAuth = true; $mail->Host = ""; // SMTP a utilizar. Por ej. smtp.elserver.com $mail->Username = "; // Correo completo a utilizar $mail->Password = ""; // Contraseña $mail->Port = 465; // Puerto a utilizar $mail->SMTPSecure = "ssl"; //Tipo de seguridad //Con estas pocas líneas iniciamos una conexión con el SMTP. Lo que ahora deberíamos hacer, es configurar el mensaje a enviar, el //From, etc. $mail->From = "info@elserver.com"; // Desde donde enviamos (Para mostrar) $mail->FromName = "Nombre";//Estas dos líneas, cumplirían la función de encabezado (En mail() usado de esta forma: "From: Nombre <correo@dominio.com>") de //correo. $mail->AddAddress("correo"); // Esta es la dirección a donde enviamos $mail->IsHTML(true); // El correo se envía como HTML $mail->Subject = "Titulo"; // Este es el titulo del email. $body = "Hola mundo. Esta es la primer línea<br />"; $body .= "Acá continuo el <strong>mensaje</strong>"; $mail->Body = $body; // Mensaje a enviar $exito = $mail->Send(); // Envía el correo. //También podríamos agregar simples verificaciones para saber si se envió: if($exito){ echo 'El correo fue enviado correctamente.'; }else{ echo 'Hubo un inconveniente. Contacta a un administrador.'; } ?>
Esperamos que esto sea de ayuda para ustedes.