CSS y fuente de google - script bug fix

viernes, 16 de septiembre de 2016

PHP Mailer 5 ¿ como enviar por STMP ? (envio seguro) ¿ hosting funcion Mail() de php bloqueado por seguridad ? (envio clasico)

Funcio Mail y su misterio

Me ha pasado en varios hosting que la clasica funcion de Mail() de PHP esta bloqueado por razones de seguridad. Lo cual no significa que la funcion Mail()  hayan dejado de dar soporte al contrario esta misma continua en vigencia para posteriores versiones. Mas informacion : http://php.net/manual/es/function.mail.php
Aca podemos ver que Mail tiene soporte de PHP 4 hasta PHP 7

Entonces ¿ por que los hosting lo bloquean ?

La función "mail()" de php es fácilmente manipulada por hackers para el envío masivo de emails o tambien para generar SPAM. Lo cual repercute negativamente en la reputación de la IP del servidor y afecta en forma directa nuestro dominio. Algo contradictorio por si es inseguro ¿ por que la gente de PHP le sigue dando soporte ? . Bueno Supongo que en algun momento diran algo al respecto.

Solución : Envió de email con SMTP y libreria PHPMailer

Primero debemos descarga la libreria PHPMailer que es libre https://github.com/PHPMailer/PHPMailer y lo subimos a nuestro hosting.
Luego creamos un email en nuestro Hosting , un ejemplo podría ser contactoweb@nuestro_dominio.com. Para crear un email se hace a través de nuestro panel de administracion Ferozo o Cpanel.
Cpanel : Crear email 

En nuestro código PHP debemos escribir lo siguiente :

$subject = 'mi asunto';
$body= '<body>Hola </br>Mundo</body>';

require("carpeta_phpmailer/class.phpmailer.php");
require("carpeta_phpmailer/class.smtp.php");

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->CharSet  = 'UTF-8';
$mail->Host       = "mail.nuestro_dominio.com";
$mail->SMTPAuth   = true;                
$mail->Port       = 26;                    
$mail->Username   = "contactoweb@nuestro_dominio.com";
$mail->Password   = "password_de_email";
$mail->From = "contactoweb@nuestro_dominio.com";
$mail->FromName = "Contacto Web";
$mail->AddAddress('operador@nuestro_dominio.com','supervisor@nuestro_dominio.com'); 
$mail->Subject = $subject;
$mail->Body = $body;
$exito = $mail->Send();

Datos requeridos para SMTP : 

  • SMTPAuth ( casi siempre va TRUE por que la mayoría exigen "autentificación" )
  • Host (servidor saliente)
  • Port (puerto SMTP)
  • Username ( nombre de usuario)
  • Password  ( contraseña )


Cpanel : Configuración del cliente de correo. Muestran los datos requeridos

¿ Y con Wordpress como hago el envio de email por SMTP ?

En este link http://blog.hostrentable.com/2016/02/18/formulario-de-contacto-smtp-para-wp/ explica como hacerlo a traves de Plugin ( Contact Form 7 y WP Mail SMTP).