martes, 5 de febrero de 2008

PHPMailer

Siempre es agradable recibir los emails maquetados y con alguna imagen que otra que le de gracia. Da una imagen profesional de nuestra web.
Otra característica interesante sería poder recibir adjuntos junto al email que enviemos desde la web.
Para ellos tenemos la instrucción mail en PHP para envío de correo 'solo texto' pero enviar correo maquetado con esta herramienta es una tarea dura y ardua. Por fortuna existe una herramienta llamada PHPMailer que nos facilita mucho la labor.

Vemos mediante un ejemplo su funcionamiento:

//Incorporamos la clase de envio de email.
include_once("phpmailer/class.phpmailer.php");

//Construimos un objeto de la clase PHPMailer
$mail = new PHPMailer();

//Indicamos al objeto donde se encuentran los ficheros del paquete PHPMailer
$mail->PluginDir = "phpmailer/";

//Instanciamos la propiedad Host con la dirección del servidor de envio de email, generalmente localhost.
$mail->Host = "localhost";

//En la propiedad From ponemos la dirección que se identifica como remitente
$mail->From = 'email del remitente';

//Indicamos el nombre con el que se identifica el remitente
$mail->FromName = 'Nombre del remitente';

//Frase descriptiva del email. En el subject siempre debe estar escrito una frase que resuma el contenido del email
$mail->Subject = "Asunto del email";

//Añadimos la direccion de envio
$mail->AddAddress("email de envio","Nombre del que recibe el email");

//Si queremos que alguien reciba una copia lo especificamos en este método
mail->AddCC("email de copia");

//Si quemos que alguien reciba una copia oculta lo especificamos en este método
$mail->AddBCC("email de copia oculta");

//Para adjuntar ficheros debemos utilizar el método AddAttachment
$mail->AddAttachment("Url de la imagen", "Nombre con el que aparecerá en los adjuntos");

//Si queremos utilizar imágenes dentro del email maquetado debemos utilizar este método
$mail->AddEmbeddedImage("Url de la imagen","Referencia de la imagen","Nombre de la imagen","base64","image/jpg");

Lógicamente "image/jpg" cambiará dependiente del tipo de imagen a enviar, si enviamos un gif debemos poner "image/gif".

//Construimos el email maquetado y lo metemos dentro de una variable
$body = '
<style type="text/css">
.Total
{
width:80%;
font-family: verdana;
}
</style>
<div class="Total">
<img src="cid:Referencia de la imagen"> /* Ver $mail->AddEmbeddedImage */
</div>';

//Cuerpo alternativo del email por si el lector del cliente no es capaz de componer páginas web
$alt_body = "Email alternativo\n\n";

//Ponemos el cuerpo del correo en la propiedad Body
$mail->Body = $body;

//Ponemos el cuerpo alternativo del correo en la propiedad AltBody
$mail->AltBody = $alt_body;

//Enviamos el correo, si se envia bien devuelve un 0 ( no hay error de envio ) en caso contrario devuelve otro valor.
$Error = $mail->Send();


Ver más en:
PHPMailer
http://blog.unijimpe.net/introduccion-a-phpmailer/

Transparentar capas en la web.

Hay ocasiones en las que quedaría bien en la web que zonas no activas aparecieran difuminadas dando a entender que no están en uso.
Para ello podemos hacer uso de la propiedad CSS3 llamada opacity soportada por Mozilla, IE no la soporta pero hay una solución para ello.
La propiedad opacity tiene valores entre 0 y 1. 0 es transparente y 1 totalmente opaco.
Para IE utilizaremos 'filter:alpha(opacity=100)' cuyos valores van de 0 a 100. 0 es transparente y 100 totalmente opaco. En el caso de IE hay que poner obligatoriamente la propiedad width ya que en caso contrario no funciona.
Para modificar dinámicamente estas propiedades tenemos para mozilla la instrucción this.style.opacity=0.2 y para IE this.filters.alpha.opacity=20 .
El ejemplo está probado en FireFox 2.0 y en IE7 .






Esto es un texto para ver la opacidad.









Ocultar


Ver