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.
No hay comentarios.