Expandir el envío de correo electrónico con Applescript

0

Leí con interés el artículo sobre el envío de un correo electrónico basado en el análisis a través de un archivo csv para recoger el nombre y la dirección de correo electrónico. Esto parece ser la mayor parte de lo que necesito para lograr mi objetivo, con la excepción de que me gustaría que el script se ejecute una vez al día y envíe el correo electrónico un día antes de la fecha almacenada en el archivo csv. Esto es para recordarle a alguien que debe realizar una determinada tarea al día siguiente. Los correos electrónicos se enviarán usando Apple Mail como MTA a través de mi cuenta de gmail.

El csv contendrá lo siguiente:

nombre, apellido, fecha de acción

El script debería recoger el nombre y la fecha del archivo csv. He codificado el texto del correo electrónico en el script como se muestra en el ejemplo anterior.

Pseudocódigo:

  1. El script se ejecuta justo después de la medianoche todos los días, analizando el csv para determinar quién debe recibir el correo electrónico en qué fecha.
  2. Para los nombres seleccionados, cree y envíe un correo electrónico el día anterior a la acción requerida.
  3. Como beneficio adicional, el script podría reenviar el recordatorio en la fecha de vencimiento, así como cualquier nuevo recordatorio para el día siguiente.

Supongo que podría restar manualmente un día en mi csv para facilitar la codificación.

Acabo de comenzar con Applescript y no sé cómo modificar el script existente para lograr este objetivo.

    
pregunta Rod Cole 13.07.2013 - 02:38

1 respuesta

1

Prueba algo como esto:

set csv to "[email protected],7/14
[email protected],7/15"
--set csv to read "/Users/username/Documents/file.csv" as «class utf8»

set text item delimiters to ","
set y to year of (current date)
repeat with l in paragraphs of csv
    set d to (date (text item 2 of l & "/" & y))
    if date string of (current date) is date string of (d - 1 * days) then
        tell application "Mail"
            tell (make new outgoing message)
                set subject to "subject"
                set content to "content"
                make new to recipient at end of to recipients with properties {address:text item 1 of l}
                send
            end tell
        end tell
    end if
end repeat

Puedes ejecutar el script todos los días después de la medianoche (si el equipo está activo) ejecutando EDITOR=nano crontab -e y agregando una línea como 1 0 * * * osascript ~/Scripts/some\ script.scpt .

Los formatos de fecha reconocidos dependen de la configuración seleccionada en Preferencias del sistema. No sé cómo obtener una dirección de correo electrónico para un nombre y apellido.

    
respondido por el user495470 13.07.2013 - 04:22

Lea otras preguntas en las etiquetas