Outlook | Enviar un correo periódicamente a través de las tareas

Publicidad




Artículo

Outlook no proporciona una forma fácil de programar un envío de correos periódicos al igual que lo hace con las citas o las tareas, pero existe un método mediante programación de Visual Basic y con una secuencia de comandos podemos crear y automatizar el envío periódico.

El proceso consta de tres partes:

  1. Publicar un formulario de Tareas personalizado que va a crear un mensaje de correo cuando el estado de la tarea sea marcado como completado.
  2. Utilizar dicho formulario para crear una tarea repetitiva.
  3. Cuando salte el aviso de la tarea y la marquemos como completada automáticamente se abrirá el mensaje de correo para enviar. Hay dos opciones posibles:
    • Que se abra el mensaje para poder modificar cualquier elemento del mensaje (adjuntar, añadir, quitar…).
    • Que se envíe directamente.

1. Publicar un formulario con un script personalizado

Para realizar el proceso deberemos tener activa la ficha Desarrollador: Archivo Opciones Personalizar la cinta de opciones, en Pestañas principales marcar Desarrollador.

Programar un correo periódico - palel.es

Creamos una nueva tarea.

Programar un correo periódico - palel.es

Abrimos la ficha Desarrollador y pulsamos Diseñar este formulario.

Programar un correo periódico - palel.es

Pulsamos en Ver código dentro del grupo Formulario.

Programar un correo periódico - palel.es

Se abre el Editor de scripts y escribimos el siguiente código:

Programar un correo periódico - palel.es

Sub Item_PropertyChange(ByVal Name)
   Select Case Name
   Case “Status”
           if Item.Status = 2 then ‘2 = Completed
                   Set NewItem = Application.CreateItem(0)
                   NewItem.To = “poner_aqui_la@direccion.com”
                   NewItem.Recipients.ResolveAll
                   NewItem.Subject = “Escribir aquí el texto del ASUNTO”
                   NewItem.Body = “Escribir aquí el texto del CUERPO del mensaje.”
                   NewItem.Display
           End IF
   End Select
   End Sub

Este es el código si optamos por la opción de que se abra el mensaje antes de enviar, si optamos porque se envíe directamente una vez marquemos la tarea como completada deberemos añadir la línea de código opcional que aparece en la imagen anterior: NewItem.Send debajo de NewItem.Display.

– Ojo: comilla simple ALT+39 y comilla doble ALT+34 (gracias Miguel Ángel Zapata por la puntualización en tu comentario).

Pulsamos en Archivo y Cerrar.

Programar un correo periódico - palel.es

Pulsamos en el botón Publicar formulario como. Desde Examinar localizamos la carpeta TareasAceptar. Damos un nombre al formulario, en el ejemplo TareaCorreoPublicar.

Cerramos el formulario sin guardar cambios.

2. Crear una tarea repetitiva basada en el formulario

Desde la carpeta Tareas donde hemos publicado el formulario pulsamos en Nuevos elementosFormularios personalizadosTareaCorreo.

Programar un correo periódico - palel.es

A partir de aquí configuramos la tarea: 1 Nombre de la tarea – 2 Fecha de vencimiento (la primera vez que se va a ejecutar/enviar el correo) – 3-4 Marcar el aviso (día/hora) – 5 Pulsar en Periodicidad y establecer cada cuánto queremos enviar los mensajes (una
vez que se lance el aviso la tarea), en el ejemplo: todos los miércoles y viernes de cada semana a las 9 de la mañana. Podemos especificar una fecha de finalización o un número de repeticiones. Aceptar. Guardamos y cerramos la tarea.

Programar un correo periódico - palel.es

3. Envío del mensaje periódico cuando salte el aviso de la tarea

Una vez que ya tenemos los dos primeros pasos completados solo falta esperar a que salte el aviso de la tarea: podemos abrirla y marcarla como completada o bien desde la lista de tareas marcarla como completada.

Programar un correo periódico - palel.es

Automáticamente, en el momento que la marquemos como completada, se abrirá (o enviará), el mensaje de correo establecido en el script y se creará una nueva tarea para el siguiente día establecido en la periodicidad.

Por supuesto que para que este proceso se realice Outlook deberá estar en ejecutándose (abierto).

Este proceso está descrito desde hace mucho tiempo (2007) en un artículo en la KB de Microsoft, pero referido a Outlook 2000-2003. Ayer un amigo contacto conmigo porque quería programar envíos periódicos y me puse manos a la obra para ver si también era posible realizarlo con Outlook 2013, decidí reflejar dicho artículo actualizado y con imágenes. Dedicado a Peter.

¿Has encontrado ayuda en este blog?

Si quieres puedes hacer un pequeño aporte para mantenerlo

G R A C I A S

I M P O R T A N T E

Los artículos están realizados para ayudar y orientar a los usuarios, si tienes dudas o consultas NO las plantees en los artículos, hazlo en los FOROS y COMUNIDADES de USUARIO.

Palel

Publicidad




33 Replies to “Outlook | Enviar un correo periódicamente a través de las tareas”

  1. Hola Pilar, excelente articulo, me ha ayudado mucho, pero tengo una cuestionante. En caso de querer agregar un archivo adjunto, intente usando la funcion “.add” pero no me funciona, lo hice de este modo:

    NewItem.Add = “C:\Users\x\log.txt”

    ¿alguna recomendación?

    Nuevamente gracias por el articulo.

  2. Hola buena tarde, primero que todo, gracias por el aporte es excelente; Tengo una duda, realice el proceso, arregle los errores de comillas, pero cuando me sale en mensaje de la tarea y le doy doble clic, este me abre el mensaje para ser enviado, mas no se envía, habrá alguna forma que se envié predeterminada mente?

    • Hola buena tarde, ya resolvi mi inconveniente y solo era colocarle: “NewItem.Send”.

      Ahora quisiera saber como hago para enviar el cuerpo del mensaje en parrafos, pues me aparece como error, pues actualmente lo puedo enviar pero en un solo parrafo.

  3. por favor, como ingreso a editar el código fuente???
    si ingreso bajo los mismo pasos, me abre un editor en blanco.
    Gracias

  4. HOLA SI QUIEREN MANDAR EL CORREO EN LA FORMA DE COPIA OCULTA SOLO TIENEN QUE SUSTITUIR
    NewItem.to por
    Newitem.BCC
    Y LISTO LA TAREA SE MANDA CON COPIA OCULTA

  5. Buenas,
    me esta siendo de mucha utilidad,
    para que fuera perfecto necesitaria poder aplicar saltos de línea.
    ¿como debería de ser el código?.
    Muchas gracias.

  6. Muy buenas,

    A mi me da un error de Línea nº.: 6

    ¿Alguien puede ayudarme a solucionarlo?

    Gracias anticipada y un saludo.

  7. deje programada la tarea vuelvo en un par de días para ver si me funciona tu recomendación, desde ya muchas gracias, esperemos que funcione….

    Saludes
    Elvis

  8. Buen día ¿se podría agregar a un destinatario en copia con otra linea en el código de Visual Basic?

  9. Buenos días Pilar

    A mi también me arroja el mismo error que a otras personas pero yo si estoy usando Outlook 2013, aparece de esta manera

    Error del script
    Carácter no válido
    Línea No 3

    Lo único que modifiqué fueron obviamente el correo, el asunto y el cuerpo, inclusive este script también aparece de la misma manera en la página de Microsoft.
    A ti te funcionó sin problemas?
    Sabrás porque me manda este error?
    Gracias

  10. Hola:
    Me agrado mucho tu post.
    ¿Si quisiera agregarle mi firma al pie del mensaje a enviar como lo podria hacer?

    Gracias.

  11. Buen día Pilar, creo que mi consulta esta relacionada al post, estoy buscando la forma de configurar el envío automático de un correo diario a una lista e distribución pero sin tener la pc/notebook encendida y que el cuerpo del mensaje cambie diariamente. ej. una frase de seguridad en la empresa.
    Pd: sigo tus post y son de gran ayuda. muchas gracias por ellos!
    Saludos,

  12. Hola,

    Si, además del destinatario visible, quisiera enviar a destinatario oculto (CCO), cómo debería de programarlo?

    Gracias

  13. Aparece error codigo linea 3. No son las comillas escritas o pegadas.(probadas ambas opciones).Gracias.

  14. Hola Amigo me sirvio mucho tu post. mi pregunta es como puedo hacer para que envie algun documento o imagen, y si se puede el enviar una pagina de word por cada correo.

    Ejemplo que el dia 1 se envie la pagina 1 el dia 2 se envie la hoja 2 y asi sucesivamente es factible realizar esto.

    De antemano muchas gracias

    • No me parece que sea factible lo que pides, pero tampoco puedo asegurarlo puesto que mediante programación hay muchas cosas que pueden hacerse, aunque es un tema que desconozco totalmente.
      Deberás buscar más información en otros medios o preguntar en las Comunidades de programación.

  15. Muchas gracias, te quería comentar que me sale que el scrip tiene una falla en la 3era linea… y claro…algunas cosas se han modificado creo..estoy trabajando desde ofice 2016
    agradezco tu ayuda

Deja un comentario