Estructura del sitio utilizando PHPMailer - Enviar emails con PHPmailer

Blog sobre Programacion y Enviar emails con PHPmailer en Argentina

El codigo anterior es suficiente para enviar correos de forma correcta y segura. Sin embargo tambien necesitaras obtener los datos que seran enviados con el script. Hay varias estructuras que se podrian utilizar. Algunos ejemplos son:

  • Una pagina html/php con un formulario y una pagina .php con el script que envia los datos del formulario.
  • Una unica pagina PHP que tome los datos de base de datos
  • Una unica pagina PHP que tome multiples datos de base de datos y envie un lote de correos.
  • Una funcion PHP que incluya el script y pueda ser utilizado para diferentes envios.

En todos los casos la configuracion sera la misma pero tendremos que reemplazar algunos parametros por variables. Los principales serian:

$mail->addAddress($email_destino, $nombre_destino);

$mail->Subject=$asunto;

$mail->Body=$cuerpo;

$mail->AltBody=$cuerpo_texto

Modificando estas lineas nuestro script podra recibir datos de forma dinamica. Por ejemplo un formulario para enviar mensajes a nuestros usuarios mediante PHPMailer seria:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
</head><body>
<form method="post" action="enviar.php">
    <input type="text" name="email" />
<input type="text" name="asunto" />
    <input type="text" name="mensaje" />
    <input type="submit">
</form>
</body>
</html>

Este formulario enviara un correo a nuestro usuario con el correo indicado, el asunto y el mensaje. Estos datos son enviados a nuestro primer script en enviar.php. Al script solo seran necesario reemplazar estas variables y tomar los valores mediante POST. El siguiente codigo muestra el codigo final de enviar.php utilizando PHPMailer

require 'PHPMailerAutoload.php'
$mail = new PHPMailer;
$email_destino=$_POST["email"];
$asunto=$_POST["asunto"];
$mensaje=$_POST["mensaje"];

$mail->SMTPDebug = 2; // Activar log para encontrar errores
$mail->isSMTP(); // Indicar que el email se enviara mediante SMTP
$mail->Host = 'mail.sitioweb.com;'; // Servidor SMTP del servidor
$mail->SMTPAuth = true; // Autenticar SMTP con usuario y password de una cuenta existente
$mail->Username = 'user@example.com'; // Correo electronico a utilizar para los envios
$mail->Password = 'password'; // Password de la cuenta de correo
$mail->SMTPSecure = 'tls'; // Activa envio seguro mediante SSL / TLS
$mail->Port = 587; // Puerto a utilizar, puede variar segun el proveedor de hosting. Si no se utiliza SSL el puerto deberia ser 25 o 26.
$mail->setFrom('from@sitio.com', 'Notificaciones'); // Indica quien envia el correo, y un nombre, en este caso notificaciones.
$mail->addAddress($email_destino, 'Nombre de usuario'); // Indica a quien se envia el correo y nombre (nombre es opcional);
$mail->addReplyTo('info@misitio.com', 'Notificaciones'); // Un email para recibir respuestas
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Enviar adjunto(opcional)
$mail->isHTML(true); // Para enviar correo utilizando etiquetas html
$mail->Subject = $asunto; //El asunto del correo
$mail->Body = $mensaje;
$mail->AltBody = 'Cuerpo del mensaje solo texto'; //Recomendado utilizar para gestores de correo que no permitan html y mejorar la recepcion de correos.
if($mail->send()) { // Se envia el correo      
echo 'Mensaje enviado.'
}else {
      echo 'El mensaje fallo';
echo 'Mailer Error: ' .
$mail->ErrorInfo;
}

Visitar articulo completo sobre Enviar emails con PHPmailer

Comparte tu opinion o comenta

Cuenta tu opinion o amplia el contenido del articulo