Mostrando entradas con la etiqueta phpmailer. Mostrar todas las entradas
Mostrando entradas con la etiqueta phpmailer. Mostrar todas las entradas

Usando PHPMailer

Vamos a aprender a mandar correos usando PHPMailer, PHPMailer nos presenta la ventaja que podemos mandar correos a un servidor SMTP solo debemos conocer el nombre o la IP, o bien mandar correos a localhost y adjuntar archivos, empezaremos disenando un formulario simple para el envio de correos:

<form action="contact.php" method="post">
<b>Para:</b><br /><select name="area">
<option value="correo1@micorreo.com">Correo 1</option>
<option value="correo2@micorreo.com">Correo 2</option></select><br />
<b>Nombre:</b><br>
<input name="nombres" type="text" /><br />
<b>Asunto:</b><br />
<input name="empresa" type="text"><br><b>E-mail:</b><br>
<input name="email" type="text"><br />
<b>Comentarios:</b><br>
<textarea name="comentarios" cols="50" rows="5"></textarea><br>
<input name="action" type="hidden" value="send">
<input name="enviar" type="submit" value="Enviar">
</form>


Las acciones las vamos a ejecutar en la pagina "contact.php", ahora bien.. descargamos las clases del pagina principal de PHPMailer solo nos interesan dos:

  • class.phpmailer
  • class.smtp
Ahora empezaremos a contruir nuestra pagina PHP que se encargara de mandar los correos, iniciamos con los datos que vamos a incluir en el mail:

$nombre = $_REQUEST["nombres"];
$asunto = $_REQUEST["empresa"];
$email = $_REQUEST["email"];
$comentarios = $_REQUEST["comentarios"];
$dest = $_POST["area"];

Estos datos son obtenidos del formulario que creamos al inicio, luego usando estos datos contruimos el mensaje:

$msg.= "De: ".$_POST['nombres']."\n";
$msg.= "Asunto: ".$_POST['empresa']."\n";
$msg.= "Email: ".$_POST['email']."\n";
$msg.= "Hora: ".date("h:i:s a ")."\n";
$msg.= "Fecha: ".date("D, d M Y")."\n";
$msg.= "------------------------------- \n\n";
$msg.= $comentarios;
$msg.= "\n\n------------------------------- \n";
$msg.= " Mensaje creado por PhpMailer \n";

Ahora importamos los archivos de PHPMailer (yo los tengo un una carpeta llamada "includes"), creamos un objeto, le ponemos las propiedades conforme nuestra configuracion y lo enviamos:

require("includes\\class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "192.168.184.131";
$mail->From = $email;
$mail->FromName = $nombre;
$mail->AddAddress($_POST["area"]);
$mail->Subject = $asunto;
$mail->Body = $msg;

Finalmente lo enviamos

if(!$mail->Send()) {
echo "<script>alert('Error:\n'.$mail->ErrorInfo')</script>";
echo '<script>window.location = "index.php"</script>'; }
else {
echo "<script>alert('Mensaje enviado')</script>";
echo '<script>window.location = "index.php"</script>'; }

Si existiese algun error tambien lo mostramos con ayuda de javascript.