viernes, 15 de junio de 2012

phpmailer en servidor externo


A continuación veremos como enviar emails con phpmailer  en un servidor externo, este ejemplo ha sido probado en un servidor 1and1 y funciona correctamente, aunque si ocurre algún error me lo comunican ... 

Antes de nada hay que descargar la librería de phpmailer, AQUÍ.

Ya con los archivos decargados, haremos uso de class.phpmailer.php ...

<?php
/* By http://php-estudios.blogspot.com */

//Se incluye la clase phpmailer
require("class.phpmailer.php");
  
$resultado = "";
  if (isset($_POST["email"])){
   
$nombre = $_POST["nombre"];
$destinatario = $_POST["destinatario"];
$asunto = $_POST["asunto"];
$mensaje = $_POST["mensaje"];
$adjunto = $_FILES["file"]["tmp_name"];
$nombre_adjunto = $_FILES["file"]["name"];
$size_adjunto = $_FILES["file"]["size"];
   
      $mail = new PHPMailer(); // Se crea el objeto
   
      $mail->Host = "localhost"; // Se indica el host desde el cual se envía el email
   
      $mail->From = "postmaster@localhost"; //Remitente - una de las cuentas de email que has creado en tu servicio de hosting
   
      $mail->FromName = "Administrador"; //Nombre del remitente
   
      $mail->Subject = $asunto; //Asunto del email
   
      $mail->AddAddress($destinatario, $nombre); //Destinatario
   
      $mail->MsgHTML($mensaje); //Mensaje en HTML
   
   /*Si el tamaño del fichero es mayor que 0, es decir, que existe*/
   if ($size_adjunto > 0){
      $mail->AddAttachment($adjunto, $nombre_adjunto);//adjuntar un archivo al email
   }

   
      if($mail->Send()) 
    {
    $resultado = "Enhorabuena el mensaje ha sido enviado con éxito a $destinatario";
    }
    else
    {
    $resultado = "Lo siento ha habido un error al enviar el mensaje a $destinatario";
    }
 } 
?>

<!DOCTYPE HTML>
<html>
<head>
<title>Email con Mercury Mail(XAMPP) y phpmailer</title>
</head>
<body>
<h3>Email con Mercury Mail(XAMPP) y phpmailer</h3>
<form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>" enctype="multipart/form-data">

<b><?php echo $resultado; ?></b>

<table border="0">
<tr>
<td>Nombre del destinatario:</td>
<td><input type="text" name="nombre"></td>
</tr>
<tr>
<td>Email del destinatario:</td>
<td><input type="text" name="destinatario"></td>
</tr>
<tr>
<td>Asunto:</td>
<td><input type="text" name="asunto"></td>
</tr>
<tr>
<td>Archivo adjunto:</td>
<td><input type="file" name="file"></td>
</tr>
<tr>
<td>Mensaje:</td>
<td><textarea cols="50" rows="15" name="mensaje"></textarea></td>
</tr>
<tr>
<td></td><td><input type="submit" value="Enviar"></td>
</tr>
</table>
<input type="hidden" name="email">
</form>
</body>
</html>


Con el código de este ejemplo debería de funcionar todo correctamente, yo lo he probado en un servidor 1and1 y funciona correctamente, aunque todo depende de la configuración del servidor, es decir que permita la salida de emails vía SMTP.



1 comentario:

Jhon Botia dijo...

Excelente post amigo sigue así,pues esta es una muy buena información para quienes hasta ahora estamos aprendiendo.Una pregunta tambien tengo dos blog en blogger y me gustaría saber como haces para colocarle esos botoncitos o eso solo se puede con wordpress y pagando un dominio gracias de antemano. Acá mi pagina ganeloteria.blogspot.com