martes, 31 de mayo de 2011

Como programar el envío automático de correos con Mail, Automator e iCal.


Cuando alguien pregunta cómo hacer para programar el envío automático de mensajes de correo en una fecha y hora determinadas se le suele remitir a la página oficial de Mail Scripts. Mail Scripts es un conjunto muy interesante de scripts que nos permiten gestionar diferentes aspectos de Mail.app, el cliente de correo por defecto en Mac OS X. En una entrada anterior de este blog explicaba "Cómo archivar correos de Mail.app con Mail Scripts".
Sin embargo, Mail Scripts no es siempre la solución, y además, algunos se preguntarán porqué es necesario recurrir a una solución de terceras partes. ¿Es posible hacer programar envíos de correo recurriendo a las herramientas del mismo Mac OS X?

La respuesta es que si, que si se puede hacer utilizando Automator, una poderosísima herramienta incluida en el sistema operativo, pero que muchos usuarios ignoran completamente. También hice referencia a éste en el post  "Automator, ese gran desconocido".

Utilizando Automator crearemos fácilmente un flujo de trabajo que incluirá un mensaje de correo con un documento adjunto, y que guardaremos como una aplicación. Si hacemos doble clic sobre este "programa", se abrirá y enviará automáticamente el mensaje de correo.

¿Pero cómo hacemos para que esto ocurra en una fecha y hora concretas y sin nuestra intervención? Muy sencillo, recurriendo a iCal y creando un evento en esa fecha y hora, y para el cual estableceremos una alarma, la cual consistirá en la apertura de la aplicación con el correo que hemos creado antes.


Los pasos a seguir con AUTOMATOR son los siguientes:

1.- Abriremos Automator (en Aplicaciones) y entre las opciones mostradas elegiremos "Flujo de trabajo".


2.- En la Biblioteca de Acciones seleccionaremos Archivos y carpetas.

3.- En esta categoría haremos doble clic en Obtener los ítems del Finder especificados (o arrastramos su icono a la ventana derecha)

4.- Dentro de esta primera acción del flujo de trabajo haremos clic en el botón Añadir y buscaremos el adjunto o adjuntos a enviar.

Si el mensaje no ha de contener archivos adjuntos obviaremos los pasos 3 y 4, y saltaremos directamente del 2 al 5.

5.- En la Biblioteca de Acciones seleccionaremos la categoría Mail.

6.- En esta categoría haremos doble clic en Nuevo mensaje de correo (o lo arrastramos a la ventana derecha)


7.- Dentro de la ventana de esta acción del flujo de trabajo completaremos los datos necesarios (destinatario, asunto, texto...)

8.- A continuación, y en esta misma categoría "Mail" añadiremos la acción Enviar mensajes salientes.

9.- Ahora deberemos guardar el flujo de trabajo como aplicación (y no como flujo de trabajo) en el Escritorio o donde queramos y con el nombre que queramos.



10.- Ya sólo queda ir a iCal, donde crearemos un nuevo evento y estableceremos en éste como Alarma la apertura de la aplicación que hemos creado antes.



Si no queremos repetir todos los pasos cada vez que necesitemos programar el envío de un nuevo mensaje de correo podemos hacer lo siguiente:

1.- Creamos en Automator el flujo de trabajo como hemos visto antes, pero no añadimos adjuntos y dejamos sin completar los datos de Nuevo mensaje de correo.

2.- Esta vez guardamos el flujo de trabajo como Flujo de trabajo o workflow (no como aplicación).


3.- Cuando hagamos doble clic sobre él se abrirá Automator y el flujo de trabajo que creamos a modo "de plantilla".

4.- Sólo habrá que añadir los adjuntos, completar los datos que falten y guardar como aplicación para que pueda abrirla automáticamente iCal cuando así lo definamos.

Podemos crear dos tipos de  plantillas de flujo: una para mensajes sin adjuntos y en la que no exista la acción Obtener los ítems del Finder especificados, y otra para mensajes con adjuntos en la que si exista esta acción. Esto es interesante ya que si no añadimos un adjunto que el script espera se generará un error en el proceso.

Debemos recordar que iCal requiere que nuestra propia cuenta de correo figure en nuestra tarjeta de la Agenda de Mac OS X, y que ésta tarjeta ha de definirse como "mi tarjeta".


Los "scripts" con Automator que hemos visto funcionan independientemente de si la cuenta de correo que tenemos creada en Mail.app es de tipo POP o IMAP, siendo éste precisamente uno de los motivos por los que Mail Scripts puede no funcionar. De hecho, en la documentación del desarrollador se advierte de que Mail Scripts Schedule Delivery no funciona si se utiliza con una cuenta de correo con un servidor Exchange. Muchos usuarios se quejan de que Mail Scripts no les funciona, y he comprobado personalmente que si se configura por ejemplo, una cuenta de correo de Gmail como IMAPSchedule Delivery no funciona, pero si la misma cuenta es POP todo va sobre ruedas.

16 comentarios:
  1. Se puede hacer lo mismo con outlook 2011 para mac?

    ResponderEliminar
  2. Muchas gracias por el artículo, me ha resultado muy útil.

    ResponderEliminar
  3. Genial el artículo, soy un fan de Automator y esto me viene genial porque Mail, a diferencia de Outlook, no puede programar una fecha de envío.

    De paso una pregunta: Me pasé hace unos meses a Mountain Lion y me encuentro con que las app de Automator se crean con versión 1.1.1. y estas no aparecen en en Launchapd. La solución es abrirlas con Leopard, da error pero no pasa nada, y vuelves a tenerlas en versión 1.1., y entonces al cargarlas ¡sin tocarlas! en ML si que aparecen en Launchap, ¿alguna idea de por qué es esto así?

    Gracias.

    ResponderEliminar
  4. Genial el artículo, soy un fan de Automator y esto me viene genial porque Mail, a diferencia de Outlook, no puede programar una fecha de envío.

    De paso una pregunta: Me pasé hace unos meses a Mountain Lion y me encuentro con que las app de Automator se crean con versión 1.1.1. y estas no aparecen en en Launchapd. La solución es abrirlas con Leopard, da error pero no pasa nada, y vuelves a tenerlas en versión 1.1., y entonces al cargarlas ¡sin tocarlas! en ML si que aparecen en Launchap, ¿alguna idea de por qué es esto así?

    Gracias.

    ResponderEliminar
  5. Muchas gracias por tu comentario. Sinceramente, no me había dado cuenta; es interesante y lo miraré con detenimiento. Yo suelo utilizar los flujos de Automator como "Servicios" a los que accedo desde menú contextual o desde la barra de menús (Scripts). Saludos.

    ResponderEliminar
  6. Hola,

    Es posible personalizar estos mensajes de cumpleaños?
    Agradecería mucho su ayuda.

    Albania

    ResponderEliminar
  7. Muchas gracias por la ayuda permanente. Un feliz 2014.

    ResponderEliminar
  8. iCal ha cambiado su formato en Mavericks, ahora como se puede programar el envio si no se puede poner como alarma la aplicacion de autmator?

    ResponderEliminar
  9. iCal ha cambiado su formato en Mavericks, ahora como se puede programar el envio si no se puede poner como alarma la aplicacion de automator?

    ResponderEliminar
  10. Hola giN, en iCal debes crear el evento o cita, y como "alarma" ir a Aviso/Personalizar/Abrir archivo. El archivo a abrir sera la app en cuestión. Saludos

    ResponderEliminar
  11. Como se pueden añadir las firmas de correo creadas con mail para que aparezcan en el mail programado con automator?

    ResponderEliminar
  12. Como puedo añadir las firmas configuradas en mail para que aparezcan en el correo programado con automator?

    ResponderEliminar
  13. Con Send Later desde e móvil es mas sencillo.
    En www.sendlater están los enlaces de descarga, GRATUITA hasta el 15 de Septiembre.

    Tiene limitaciones, pero es muy funcional.

    ResponderEliminar
  14. Buenos días,
    Un artículo súper interesante y muy bien explicado.
    Una pregunta, ¿es necesario tener el mac encendido cuando se envíen los correos? O se hace automáticamente incluso con el Mac apagado?

    ResponderEliminar