Sei sulla pagina 1di 2

Envo de mails desde PHP con smtp,

autenticacion, ssl y otros.


Posted: julio 28th, 2008 | Author: admin | Filed under: PHP, Recursos Web | Tags: Contacto, Formulario,
Formulario de consulta, Mails, PHP, PHPMailer | 30 Comments

Enviar mails con PHP suele ser sencillo, utilizando la funcion mail() podemos hacerlo
aunque no tenemos prcticamente fleixbilidad ni opciones. Casos tpicos son cuando
queremos enviar mails por smtp, utilizando una cuenta en particular, o nuestro servidor no
tiene configurado un servidor local para PHP, o necesitamos una conexion SSL, etc.
Para estos casos podemos usar la clase phpmailer, que nos da todas estas opciones y ms.
La clase la pueden descargar de: phpmailer.codeworxtech.com
Lo nico que necesitamos hacer luego de tener la clase descargada y colocada nuestro sitio,
es incluir el archivo de la misma e instancia la clase:
require(phpmailer/class.phpmailer.php);
$mail = new PHPMailer();
Hecho esto pasamos a definir mail de origen, destino, nombre, etc.:
$mail->From = $mailfrom; // Mail de origen
$mail->FromName = $name; // Nombre del que envia
$mail->AddAddress($para); // Mail destino, podemos agregar muchas direcciones
$mail->AddReplyTo($mailfrom); // Mail de respuesta
Luego definimos el contenido del mail:
$mail->WordWrap = 50; // Largo de las lineas
$mail->IsHTML(true); // Podemos incluir tags html
$mail->Subject = Consulta formulario Web: $name;
$mail->Body = Nombre: $name \n<br />.
Email: $mailfrom \n<br />.
Tel: $tel \n<br />.
Mensaje: $info \n<br />;
$mail->AltBody = strip_tags($mail->Body); // Este es el contenido alternativo sin html
Podemos adjuntar archivos simplemente agregando los mismos de la siguiente forma:
$mail->AddAttachment(nombredearchivo.txt); // Ingresamos la ruta del archivo
Y ahora viene la parte divertida (no solo me pica elerrr), definimos el servidor que
enviara el mail, podemos definir tipo de servidor, autenticacion, usuario, contrasea, etc.
Vemos ejemplo de las posibilidades que tenemos.

Si vamos a enviar mail desde el servidor local sin configuracin especial podemos usar:
$mail->Host = localhost;
Si necesitamos utilizar una casilla de correo smtp, con user y pass:
$mail->IsSMTP(); // vamos a conectarnos a un servidor SMTP
$mail->Host = mail.servidor.com; // direccion del servidor
$mail->SMTPAuth = true; // usaremos autenticacion
$mail->Username = info@servidor.com; // usuario
$mail->Password = pass; // contrasea
Si necesitamos una conexion con SSL, por ejemplo para enviar un mail desde PHP con
gmail:
$mail->Mailer = smtp;
$mail->Host = ssl://smtp.gmail.com;
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = burmauy@gmail.com; // SMTP username
$mail->Password = burmaUY123456; // SMTP password
Como ven esta clase es muy flexible y nos olvidamos de tener que manejar nosotros
mismos conexiones complejas o con cabeceras especiales. Podemos simplificarnos mucho
la vida utilizando phpmailer para enviar mails.
Ya para enviar el correo, simplemente utilizamos la siguiente linea:
$mail->Send();
Podemos poner esa llinea dentro de un if para saber si quedo todo bien configurado y se
pudo enviar el email, de la siguiente forma:
if ($mail->Send())
echo Enviado;
else
echo Error en el envio de mail;

Potrebbero piacerti anche