Envío de correos con autentificación en PHP

Envío de mails desde PHP con smtp, autenticacion, ssl y otros.

Normalmente el envio de mail se realiza utilizando la funcion mail() pero haciendolo de este modo prácticamente no tenemos flexibilidad ni opciones.
Por ejemplo: 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.

En estos casos podemos usar la clase phpmailer, que nos da todas estas opciones y más.
Una vez que tenemos la clase y la hemos colocado en nuestro sitio, tenemos que incluir el archivo de la misma e instanciar la clase:

require(”phpmailer/class.phpmailer.php”);
$mail = new PHPMailer();

Definimos 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

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

Para adjuntar archivos podemos hacerlo de la siguiente forma:

$mail->AddAttachment(”nombredearchivo.txt”); // Ingresamos la ruta del archivo

Definimos el servidor que enviara el mail, podemos definir tipo de servidor, autenticacion, usuario, contraseña, … Por ejemplo.

Si vamos a enviar mail desde el servidor local sin configuración 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”; // contraseña

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

Para finalizar se envia el correo, simplemente utilizamos la siguiente linea:

$mail->Send();

Si queremos controlar los errores podemos agregar la linea anterior dentro de un if:

if ($mail->Send())
echo “Enviado”;
else
echo “Error en el envio de mail”;

Share on Facebook

Te puede interesar también...

  • Script optimizar tablas mysql
    Una de las tareas más importantes es tener nuestras BBDD optimizadas, aqui os dejo un script que he encontradopor este m...