Dado que muchos lo estáis pidiendo me he animado a escribir una pequeña introducción a PHPMailer. Lo primero es descargarnos el archivo con la última versión y descomprimirlo en el directorio de nuestro proyecto, por ejemplo en el directorio phpmailer. Para poder usar PHPMailer basta añadir:
include("phpmailer/class.phpmailer.php");
con la ruta adecuada a PHPMailer.
En este ejemplo, modificación del que aparece en la “web oficial”, se puede ver lo fácil que es usar PHPMailer:
SetLanguage('es','phpmailer/language/'))
{
echo '
No se ha podido cargar el fichero de idioma adecuado.
';
}
// Introducimos la información del remitente del mensaje
$mail->From = "remitente@email.com";
$mail->FromName = "Remitente";
$mail->AddReplyTo("info@site.com","Information");
// y los destinatarios del mensaje. Podemos especificar más de un destinatario
$mail->AddAddress("paco@correo.com","Paco MartÃnez Soria");
$mail->AddAddress("klaatu@correo.com"); // Como se puede ver aquà el nombre del destinatario es opcional
$mail->AddCC("otrodestinatario@correo.com"); // También podemos enviar con copia de carbón
$mail->AddBCC("destiantaariooculto@correo.com"); // y copia de carbón oculta
// Establecemos los parámetros del mensaje: ancho y formato.
$mail->WordWrap = 50; // ancho del mensaje
$mail->IsHTML(true); // enviar como HTML
// Añadimos el mensaje: asunto, cuerpo del mensaje en HTML y en formato
// solo texto
$mail->Subject = "Asunto del mensaje";
$mail->Body = "Este es el mensaje en formato HTML";
$mail->AltBody = "Y este es el mensaje de solo texto"; // Para los queno pueden recibir en formato HTML
// Añadimos los adjuntos al mensaje
$mail->AddAttachment("/var/tmp/file.tar.gz"); // podemos añadir un adjunto directamente
$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // O podemos indicar un nuevo nombre para el adjunto.
if(!$mail->Send())
{
echo "El mensaje no se ha podido enviar
";
echo "Error: " . $mail->ErrorInfo;
exit;
}
echo "El mensaje se ha enviado correctamente";
?>
Este ejemplo no funcionarÃa si el servidor que usarmos es SMTP. En ese caso tendrÃamos que añadir estas lÃneas al principio:
$mail->IsSMTP(); // enviar vÃa SMTP
$mail->Host = "smtp1.site.com;smtp2.site.com"; // Servidores SMTP
$mail->SMTPAuth = true; // activar la identificacÃn SMTP
$mail->Username = "jswan"; // usuario SMTP
$mail->Password = "secret"; // clave SMTP
Otras funciones interesantes:
- ClearAddresses () - Borra todos los destinatarios del campo ‘TO’, es decir, todos los destinatarios que se han añadido con la función AddAddress.
- ClearAllRecipients () - Borra todos los destinatarios TO, CC y BCC.
- ClearAttachments () - Borra los adjuntos.
Existe información más completa, en inglés, con todas las funciones disponibles en:
http://phpmailer.sourceforge.net/docs/