Invio di e-mail con il programma Apple Mail utilizzando AppleScript.

-1

Non conosco affatto AppleScript quindi grazie in anticipo per qualsiasi aiuto offerto su questa domanda. Sono sul mio laptop Macbook Pro con l'ultima versione di OSX installato. Ho un file CSV che assomiglia a questo: Nome, Email Ken, bla @ blah.com Mike, blahblah @ blahblah.com

Questa è la mia lista clienti e voglio mandare loro una email. Purtroppo non ho questa lista in una risposta automatica, quindi devo inviare le e-mail una alla volta.

Voglio scrivere un AppleScript che elabora il mio file .csv un record alla volta e invia un messaggio. Il messaggio sarebbe simile a questo:

Oggetto: come va?

Ciao Ken

È passato un po 'di tempo da quando ti ho venduto quel widget difettoso dalla Cina. Se ti servono più electronics difettose, sono qui per te. Dammi solo una chiamata a xxx-xxx-xxxx.

Cordiali saluti

Ken

AppleScript leggeva il nome e l'indirizzo e-mail dal file un record alla volta e inviava questa e-mail, inserendo il nome e l'indirizzo e-mail, utilizzando il programma standard di posta Apple.

Dopo aver inviato il messaggio, voglio che lo script attenda 60 secondi. Quindi invia un'altra email.

Questo deve accadere fino al raggiungimento della fine del file.

La mia prima domanda ... è possibile? Se possibile come lo faccio?

C'è anche un modo migliore per fare ciò che sto cercando di fare?

Grazie

    
posta codingguy3000 13.03.2013 - 16:04
fonte

1 risposta

3

Ecco un AppleScript che fa ciò che vuoi:

property secsBetweenMails : 60 -- seconds
property csvHasHeaders : true
property mailSubject : "How’s it going?"
property mailBody : "Hi %NAME%

It’s been a while since I sold you that defective widget from China.
If you need more defective elctronics I’m here for you.
Just give me a call at xxx-xxx-xxxx.

Sincerely

Ken"

set csvData to "FirstName,Email
Ken,[email protected]
Mike,[email protected]"

--> or:
-- set csvData to read file "path:to:file.csv"

set countSent to 0

-- Parse .csv files with Applescript
-- Adapted from : http://macscripter.net/viewtopic.php?id=19676
set csvEntries to paragraphs of csvData
if csvHasHeaders then
    set startAt to 2
else
    set startAt to 1
end if
repeat with i from startAt to count csvEntries
    set {theName, theEmail} to parseCsvEntry(csvEntries's item i)
    set theBody to replaceName(mailBody, theName)
    tell application "Mail"
        set theNewMessage to make new outgoing message with properties {subject:mailSubject, content:theBody, visible:true}
        tell theNewMessage
            make new to recipient at end of to recipients with properties {address:theEmail}
            send
            set countSent to countSent + 1
        end tell
    end tell
    delay secBetweenMails
end repeat
display dialog (countSent & " mails sent.")

to parseCsvEntry(csvEntry)
    set AppleScript's text item delimiters to ","
    set {theName, theEmail} to csvEntry's text items
    set AppleScript's text item delimiters to {""}
    return {theName, theEmail}
end parseCsvEntry

to replaceName(aBody, aName)
    set AppleScript's text item delimiters to "%NAME%"
    set parts to aBody's text items
    set newBody to item 1 of parts & aName & item 2 of parts
    set AppleScript's text item delimiters to ""
    return newBody
end replaceName
    
risposta data 13.03.2013 - 16:49
fonte

Leggi altre domande sui tag