Siempre usé sencillamente el comando mail de PHP, ya que ni siquiera me pongo a hacer e-mails HTML desde mi programa de correo electrónico… menos me voy a poner a programar algo tan sofisticado (aunque no lo es tanto), ya que en general las notificaciones por mail no requieren mucho adorno.
Aprendí en un una empresa para la que hago algunos trabajos a mandar mails multipart, o sea HTML y texto plano. Nada del otro mundo.
La cosa se pone realmente molesta + peliaguda cuando querés hacer un file-attach (archivo adjunto). Programar eso no es imposible, pero roza lo imposible. Es tedioso con mayúsculas.
En otro laburo que tuve que hacer, me pidieron que el sistema enviara tal file por e-mail. Como me rompí la cabeza entonces, cuanto tiempo perdí. Al final, decidí usar la clase PHPmailer, que ya tenía por ahí y no le había dado mayor bola.
Aquí les copio el ejemplo que viene en el README del .zip.
<?php
require("class.phpmailer.php");$mail = new PHPMailer();
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "smtp1.example.com;smtp2.example.com"; // specify main and backup server
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "jswan"; // SMTP username
$mail->Password = "secret"; // SMTP password$mail->From = "from@example.com";
$mail->FromName = "Mailer";
$mail->AddAddress("josh@example.net", "Josh Adams");
$mail->AddAddress("ellen@example.com"); // name is optional
$mail->AddReplyTo("info@example.com", "Information");$mail->WordWrap = 50; // set word wrap to 50 characters
$mail->AddAttachment("/var/tmp/file.tar.gz"); // add attachments
$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name
$mail->IsHTML(true); // set email format to HTML$mail->Subject = "Here is the subject";
$mail->Body = "This is the HTML message body <b>in bold!</b>";
$mail->AltBody = "This is the body in plain text for non-HTML mail clients";if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}echo "Message has been sent";
?>
Viene para PHP 4 o 5/6.
Lo único que necesitás realmente es el class.phpmailer.php (67 Kb.), lo otro ni lo miré…




Excelente, gracias por el ejemplo, funciona sin “lo otro”
quisiera que alguien por favor me explique como se configura el correo para enviar mails masivos con phpmailer, si va mediante outlook express o por donde, por favor de manera didactica ya que no entiendo nada de computacion.
Gracias
mabel: PHPmailer corre en un servidor que tenga PHP, es una “clase” hecha para programar sobre ella, si no tenés idea de computación asumo que menos de programar, por lo tanto PHPmailer no es para vos.
Tendrás que buscar por otro lado, algo orientado al usuario final, listo para andar.
viejo como lo configuro para enviar multiples mail desde una base de datos he intentado esto pero no me funciona:
Host = “localhost”;
$mail->From = “leo”;
$mail->FromName = “PEDIDOS BDK”;
$mail->Subject = “TIENE UN NUEVO PEDIDO”;
while($val = mysql_fetch_assoc($res))
{
$mail->AddAddress($val["email"]);
}
$body = “Hola amigo“;
$body .= “probando PHPMailer.”;
$body .= “Saludos”;
$mail->Body = $body;
$mail->AltBody = “Hola amigo\nprobando PHPMailer\n\nSaludos”;
$mail->AddAttachment(“1299602351pedidosbdk.pdf”, “pedido.pdf”);
$mail->Send();
?>
Hola Leo.
Asumo que en
$mail->From = “leo”;querrás poner tu mail @ y no lo querés publicar en el comentario, ¿no?Toda esta parte:
la podés evitar si tu server te permite usar el comando mail desde PHP; no tendrías que probar SMTP, ni usuario ni password.
Esto:
$mail = new PHPMailer();$mail->IsMail();
$mail->From = 'alguno@algo.com';
$mail->FromName = 'Pepita la pistolera';
$mail->AddAddress($persona_email, $persona_nombre);
$mail->AddCC('carlos@yoyoyo.com', 'Agente Augusto');
[...]
Éxitos.