jueves, 21 de febrero de 2013

Envío de emails con PHP y PHPMailer

En ocasiones nuestra web necesita enviar E-mails a los usuarios, bien mediante un Newsletter o porque en la web se ha generado algún tipo de actividad, por ejemplo un usuario ha contestado a otro, y para que se entere queremos enviarle un correo electrónico.

Para ello utilizaremos la función PHPMailer, la cual es disponible con casi cualquier proveedor de servicios, incluido vuestro correo web @tuweb.com

Podemos utilizar muchas de las opciones que hay por internet pero, después de probar unas y otras, he decidido implementar PHPMailer para el envío de E-Mails mediante PHP, ya que otros enviaban los E-Mail pero desgraciadamente acababan en la carpeta de SPAM.

Un dato muy importante es utilizar la última versión de PHPMailer, ya que si utilizas versiones  muy antiguas puede que envíes mails directamente a SPAM, y muy poca gente revisa esa carpeta.

La última versión de PHPMailer la podeis descargar desde este link de Google Code https://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list

<?php

error_reporting(E_STRICT);
require_once('class.phpmailer.php'); // RUTA ACCESO
$mail             = new PHPMailer(true);
$body             = "Esto es un <b>Email</b> de prueba con etiquetas HTML";

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "mail.yourdomain.com"; // SMTP server
$mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
                                           // 1 = errors and messages
                                           // 2 = messages only
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "mail.yourdomain.com"; // sets the SMTP server
$mail->Port       = 26;                    // set the SMTP port for the GMAIL server
$mail->Username   = "yourname@yourdomain"; // SMTP account username
$mail->Password   = "yourpassword";        // SMTP account password

$mail->SetFrom('name@yourdomain.com', 'Usuario'); //E-mail del emisor

$mail->Subject    = "Titulo de tu Email";

$mail->AltBody    = "Cabecera de tu Mail";
$mail->MsgHTML($body);

$address = "whoto@otherdomain.com";   // E-mail del receptor
$mail->AddAddress($address, "John Doe"); //Nombre del receptor

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}

?>


Lo primero que tendreis que hacer es subir los archivos que os habéis descargado del enlace de arriba a vuestro servidor a la carpeta que queráis:
  • class.phpmailer.php
  • class.pop3.php
  • class.smtp.php
 Es importante la ruta de acceso a estos archivos que se incluye en el código anterior sea la misma, ya que si no encuentra los archivos no podrá ejecutar el Script.

Una vez modifiquéis los textos naranjas del código, ya podéis pegarlo en donde queráis que, cuando se abra ese archivo se envíe el Mail o bien podéis crear un archivo para ejecutarlo mediante Cronjobs

Mejorando los tiempos de carga de una web

Muchas veces nos ofuscamos en hacer que las bases de datos realicen las consultas más rápidamente, quitamos peso de las imágenes, depuramos los archivos CSS para que haya el menor texto posible, pero yo personalmente me olvido muchas veces de comprimir la web mediante GZIP.

Las técnicas anteriores son importantes pero esta que os explico es muy sencilla de realizar y los resultados son inmediatos, por tanto no dejaremos de realizar las anteriores optimizaciones.

Dicha técnica la podremos utilizar en servidores Apache, mediante nuestro archivo .htaccess.

Lo que haremos será comprimir los archivos que le digamos para que la transferencia de datos sea menor y por tanto tarde menos en cargar nuestra web.

Simplemente tendremos que crear mediante nuestro IDE (yo utilizo Netbeans) , simplemente con el notepad de windows, o edit de Linux un archivo que se llamará .htaccess y pegaremos en su interior la siguiente línea de código:

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file .html$
mod_gzip_item_include file .php$
mod_gzip_item_include file .css$
mod_gzip_item_include file .js$
mod_gzip_item_include mime ^application/javascript$
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include handler ^application/x-httpd-php
mod_gzip_item_exclude mime ^image/.*
</IfModule>


y una vez lo hayamos guardado lo subiremos a nuestro servidor a la carpeta raiz de nuestra web (http_docs o public_html dependiendo de nuestro proveedor)

Para realizar esta técnica tendremos que saber si en nuestro servidor está instalado el módulo gzip.

domingo, 10 de febrero de 2013

Md5 mediante javascript

Aquí tenemos un script en javascript que nos ayudará a codificar textos desde el lado del cliente.




Estudiaré las posibilidades que tiene este script, en breves el siguiente post.

Fuente original: http://pajhome.org.uk/crypt/md5/md5.html