Enviar email por SMTP con PHP.

Hoy trabajando me surgió una pequeña duda. Como enviar emails desde mi código PHP de forma segura y que el cliente lo pueda recibir sin que su servidor lo retubiera por "malicioso" o "spam".
Buscando, buscando encontré una libreria que ejecuta a la perfección mi duda.

La función mail() de PHP ya se está quedando algo obsoleta. La mayoría de servidores ya retienen estos emails por malicioso ( era una forma muy útil de hacer spam sin contemplaciones ) y el servidor que los deja pasar ( como gmail ) te los mueve a la carpeta de spam ( evidentemente eso no es lo que queremos ).

Para solucionar este problema, usaremos la libreria Zend. Con esta librería y un pequeño script podemos enviar emails autentificándonos vía SMTP.

Para empezar creamos una clase : sendemail.php

include("Zend/Mail.php");
include("Zend/Mail/Transport/Smtp.php");

class sendEmail{

private $addTo;

/**
* Nombre de destino
*
* @var string
*/
private $nameTo;

/**
* Titulo del email
*
* @var string
*/
private $subject;

/**
* Cuerpo del mensaje
*
* @var string
*/
private $body;

/**
* Enviar email
*
* @param string $addTo
* @param string $nameTo
* @param string $subject
* @param string $body
*/
public function sendDetails($addTo, $nameTo, $subject, $body){

$config = array('auth' => 'login',
'username' => 'USUARIO',
'password' => 'CLAVE');

$transport = new Zend_Mail_Transport_Smtp('HOST', $config);

$mail = new Zend_Mail();
$mail->setBodyText($body);
$mail->setFrom('EMAIL-DE', 'NOMBRE');
$mail->addTo($addTo, $nameTo);
$mail->setSubject($subject);
$mail->send($transport);

}
}
?>

Se debe editar previamente nuestro:
HOST: nombre del servidor SMTP
USUARIO: Nombre del usuario para conectar al servidor SMTP
CLAVE: Clave del usuario para conectar al servidor SMTP
NOMBRE: Nombre que aparecerá en el correo
EMAIL-DE: Email que aparecerá al usuario, de donde proviene el correo.

La usamos de la siguiente forma index.php

include("sendemail.php");

$email = new sendEmail();
$email->sendDetails($addTo, $nameTo, $subject, $body);
?>

Donde:
$addTo: Email del destinarario.
$nameTo: Nombre del destinatario
$subject: Asunto del mensaje
$body: Cuerpo del mensaje.

Compártelo

También te puede interesar...

Comentarios

    No hay comentarios.

Escribe un comentario

Tienes que estar registrado para poder dejar comentarios.
Accede a tu cuenta o regístrate en NotasWeb.com.
No_avatar jordikid
en el Ranking


Artículos más vistos del usuario

Últimos artículos del usuario