martes, 1 de octubre de 2013

Enviar múltiples emails con PHPMAILER


A través del siguiente ejemplo con la clase PHPMAILER, veremos como enviar emails a múltiples destinatarios de una sola vez, para ello en el campo destinatarios se deben de ir separando cada uno de los destinatarios a través de un coma.

Si no tienes PHPMAILER, lo puedes descargar directamente desde aquí, DESCARGAR PHPMAILER

<?php
error_reporting("E_NOTICE");
$resultado = "";

if (isset($_POST["destinatarios"]))
{
$destinatarios = $_POST["destinatarios"];
$destinatarios = explode(", ", $destinatarios);
$email = $_POST["email"];
$mensaje = $_POST["mensaje"];
$adjunto = $_FILES["adjunto"];

require("class.phpmailer.php");

$mail = new PHPMailer();

foreach($destinatarios as $destinatario)
{
$mail->Host = "localhost"; #Servidor SMTP, si es un servidor externo pon el de tu proveedor

$mail->FromName = "Administrador"; //Nombre del remitente

$mail->Subject = "Buenos días"; //Asunto del email

$mail->AddAddress(trim($destinatario)); //Destinatario

$mail->MsgHTML($mensaje); //Mensaje en HTML

//Si el archivo es de tamaño mayor que 0
if ($adjunto["size"] > 0)
{
$mail->AddAttachment($adjunto["tmp_name"], $adjunto["name"]);//adjuntar un archivo al mensaje
}

if($mail->Send())
{
$resultado .= "Enhorabuena el mensaje ha sido enviado con éxito a $destinatario<br>";
}

else
{
$resultado .= "Lo siento ha habido un error al enviar el mensaje a $destinatario<br>";
}
}
}
?>

<h3>Enviar múltiples emails con PHPMAILER</h3>

<form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>" enctype="multipart/form-data">
<table border="0">
<tr>
<td>Archivo:</td>
<td><input type="file" name="adjunto"></td>
</tr>
<tr>
<td>destinatarios:</td>
<td><input type="text" name="destinatarios" size="50"></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>
<b><?php echo $resultado; ?></b>
</form>