Enviar correos desde WordPress es muy sencillo utilizando la función wp_mail.

Lo mejor es que veáis un ejemplo.

$email="usuario@dominio.com";
$titulo="Subject del Email de prueba";
$mensaje="Email de prueba. bla bla bla";
$headers = 'From: Remitente ' . "\r\n";
wp_mail($email, $titulo, $mensaje, $headers);

En este ejemplo podemos ver los cuatro campos principales. Lo que hace es enviar un email en modo texto, si queremos enviarlo en html debemos añadir un filtro para indicar que el contenido se enviará en html.

add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));

En el ejemplo:

$email="usuario@dominio.com";
$titulo="Subject del Email de prueba";
$mensaje="Email de prueba. bla bla bla";
$headers = 'From: Remitente ' . "\r\n";
add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
wp_mail($email, $titulo, $mensaje, $headers);

Si además queremos enviar un fichero adjunto al mensaje sólo tenemos que añadir un parámetro más a la función wp_mail.

$email="usuario@dominio.com";
$titulo="Subject del Email de prueba";
$mensaje="Email de prueba. bla bla bla";
$headers = 'From: Remitente ' . "\r\n";
$fichero="/home/rastreador/mi_fichero";
$atach= array($fichero);
add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
wp_mail($email, $titulo, $mensaje, $headers,$atach);

Como os indicaba ayer en el post acerca de la migración de correo, para sincronizar el correo utilizo la herramienta imapsync.

Imapsync es una de las herramientas mas versátiles que he encontrado para realizar este tipo de tareas, permite realizar combinaciones de todo tipo y como esta escrito en perl funciona en prácticamente cualquier sistema operativo.

En mi caso para la migración he preparado un script que me recogía el correo en el servidor origen y me lo guardaba en el destino eliminándolo del origen y autentificandose de forma diferente en cada uno de los servidores.  Algó así:

/usr/bin/imapsync –host1 pop.dominio-origen.com –user1 manuel@dominio-origen.com  –password1 clave1 –host2 imap.dominio-destino.com –user2 manuel@dominio-destino.com  –password2 clave2 –noauthmd5 –ssl2 –delete –expunge1

Recientemente he migrado todos los dominios de correo que administro desde un viejo qmail a un nuevo servidor dedicado con zimbra.

Como cualquier migración de correo hay varios pasos que son imprescindibles si no queremos que se nos pierdan correos  por el camino.

Lo primero de todo es instalar el software del nuevo servidor de correo, yo he elegido zimbra porque me parece el uno de los mejores sistemas integrados de correo bajo software libre que tenemos en la actualidad. En el mismo paquete tengo el mta, pop3/imap, antispam, antivirus, listas de correo y un magnifico webmail con correo, agenda de grupo, libreta de direcciones personal y de grupo, gestor de tareas, block de nota, maletín de documentos, mensajería instantanea para el grupo y versiones avanzadas con ajax, estandar en html y para móvil, todo ello con temas adaptables para adaptar a la imagen corporativa del cliente si fuera necesario.

Utiliza software estandar como postfix, amavis, mysql, apache, etc. y algunos desarrollos propios como el servidor pop3 e imap y el webmail. También tiene conectores para blackberry, outlook y lotunotes pero ya de pago.

La administración básica del día a día la puedes hacer desde un entorno de administración web tan completo como el webmail, aunque para las cosas avanzadas hay que recurrir a nuestra querida línea de comandos.

Zimbra

Para el hardware he vuelto a contratar otro servidor dedicado en ovh, que sigue teniendo muy buenos precios (y no, no tengo comisión).

Bueno, después de describir el nuevo sistema lo mejor es que os cuente como he realizado la migración. Lo primero es aclarar que este servidor va a albergar el correo de varios dominios, en la actualidad ya tiene 11 y para finales de la semana que viene tendré aproximandamente 20.

Como soy un poquito maniatico para instalar el servidor he elegido un nombre de dominio completamente nuevo para el servidor, en este caso compuntoes.com.es, un dominio simpático que había comprado hace tiempo y al que no había dado uso hasta ahora.

Antes de instalar el servidor hay que asegurarse de que las dns están correctamente configuradas:

  • El nombre del dominio resuelve correctamente.
  • Tienes asignado el registro mx.
  • Está bien la resolución inversa de la ip.

Se instala y configura todo el software, se migran las cuentas de correo (esto es lo suficientemente complicado como para merecer un post por separado, aunque hay mucha documentación en el wiki de zimbra) y es cuando empieza el baile. Hay que ir a las dns del dominio y añadir un nuevo registro MX con el nombre del nuevo servidor y ponerle un peso inferior al del MX que se utilizaba hasta ese momento. Por ejemplo:

Antes del cambio para el dominio rastreador.com.es tenía:

MX smtp.rastreador.com.es 10

y pasaría a ser:

MX smtp-nuevo.rastreador.com.es 5

MX smtp.rastreador.com.es 20

de esta forma no se pierde ningún correo mientras se propagan las DNS del nuevo servidor y lo único que tienes que hacer es montar un sistema para sincronizar el correo entre los dos servidores (imapsync en mi caso) para que los usuarios puedan utilizar desde ese mismo momento el nuevo servidor.

Yo ya he realizado varias migraciones de este tipo, algunas más complicadas que otras pero la verdad es que esta es de la que probablemente más contento he quedado.


Hoy he leido el blog de Chipi que los ISP's españoles han firmado un pacto para utilizar SPF (sender policy framework) para controlar el spam.
Básicamente el SPF funciona insertando una entrada en el servidor dns que indique cuales son los servidores autorizados a enviar los correos de ese dominio para que luego los clientes de correo puedan filtrar los mensajes gracias a una línea en las cabeceras indicando la fiabilidad del emisor del correo en función de la ip desde la que se ha enviado.
Por ejemplo una de mis cuentas de correo está en GMX, un servidor de correo alemán con el que llevo mucho tiempo, y en sus DNS se puede ver la línea:
"v=spf1 ip4:213.165.64.0/23 -all" que viene a decir que sólo envía mensajes desde la red 213.165.61.0/23.

En  postfix hay varias soluciones e incluso un artículo en español muy bueno en: http://www.liberaliatempus.com/articulos/linux/inslacion-de-spf-bajo-postfix.html

Dentro de unos días voy a empezar a utilizarlo aunque dudo mucho que llegue a mejorar el sistema de listas grises que estoy utilizando ahora y que me está quitando practicamente todo el spam y sin carga de servidor como el spamassassin.