Espandi Invio di email con Applescript

0

Ho letto con interesse l'articolo riguardante l'invio di un'e-mail basata sull'analisi tramite un file csv per raccogliere il nome e l'indirizzo e-mail. Sembra quasi tutto ciò di cui ho bisogno per raggiungere il mio obiettivo con l'eccezione che mi piacerebbe che lo script eseguisse una volta al giorno e che inviassi l'e-mail un giorno prima di una data memorizzata nel file csv. Questo per ricordare a qualcuno che devono eseguire un certo compito il giorno successivo. Le e-mail verranno inviate tramite Apple Mail come MTA attraverso il mio account Gmail.

Il CSV conterrà quanto segue:

nome, cognome, data dell'azione

Lo script dovrebbe raccogliere il nome e la data dal file csv. Ho codificato il testo dell'email nello script come mostrato nell'esempio precedente.

Pseudocodice:

  1. Lo script viene eseguito subito dopo la mezzanotte ogni giorno analizzando il CSV per determinare chi deve ricevere l'email in quale data.
  2. Per i nomi selezionati, crea e invia un'email il giorno precedente all'azione richiesta.
  3. Come bonus, lo script potrebbe inviare nuovamente il promemoria nella data di scadenza, nonché eventuali nuovi promemoria per il giorno successivo.

Suppongo che potrei sottrarre manualmente un giorno nel mio csv per semplificare la codifica.

Ho appena iniziato con Applescript e non so come modificare lo script esistente per raggiungere questo obiettivo.

    
posta Rod Cole 13.07.2013 - 02:38
fonte

1 risposta

1

Prova in questo modo:

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

Puoi eseguire lo script ogni giorno dopo la mezzanotte (se il computer è attivo) eseguendo EDITOR=nano crontab -e e aggiungendo una riga come 1 0 * * * osascript ~/Scripts/some\ script.scpt .

I formati di data riconosciuti dipendono dalle impostazioni selezionate in Preferenze di Sistema. Non so come ottenere un indirizzo email per nome e cognome.

    
risposta data 13.07.2013 - 04:22
fonte

Leggi altre domande sui tag