Aiuto con un semplice script di posta elettronica per OSX

2

Sarei così felice se qualcuno potesse aiutarmi a creare un Applescript per inviare alcune email. Ho visto alcuni esempi ma non sono sicuro di poterli adattare alle mie esigenze.

Devo inviare la stessa email (soggetto e corpo), uno alla volta, a un elenco di indirizzi su un file .csv. Sto usando Apple Mail 5.3 e OSX 10.7.5

Molte grazie in anticipo a chiunque sia disposto a dare una mano.

Ecco quello che ho finora.

    tell application "Mail"

    tell (make new outgoing message)
        set theAddress to "xxxx"
        make new to recipient at beginning of to recipients with properties {address:theAddress}
        set subject to "xxxx"
        set content to "xxxx"
        send
    end tell
end tell

Ho bisogno di impostare l'indirizzo nella cella A1 sul mio foglio Excel. Come posso indicarlo lì? Una volta inviata l'e-mail, devo indicarlo alla cella A2 ... e così via.

    
posta Will 17.12.2014 - 18:14
fonte

3 risposte

0

Il modo più semplice e veloce per farlo in altre lingue sarebbe semplicemente quello di eliminare ciascuna delle colonne da excel in una lista (array) e poi avere tutto in un ciclo e creerà l'e-mail riempiendo le informazioni e quindi inviare l'e-mail, quindi tornare all'inizio e ricominciare con i valori da ciascuno degli array in [1] e così via da lì attraverso l'elenco. Non il modo più professionale o efficiente ma per i tuoi scopi che funzionerebbe. Se puoi implementarlo, vai avanti. Altrimenti, lo scriptò quando tornerò sul mio desktop.

---- ---- Modifica

Ho modificato lo script per primo scritto su questo post: link

per ottenere questo script. Io codice in Java per lo più quindi questo potrebbe non essere perfetto, quindi forse qualcuno può venire e modificarlo. OP dovrebbe passare e inserire i propri valori per le cose scritte in maiuscolo. Anche il foglio excel deve essere nella forma in cui l'OP dal link excel sheet è in

set {firstName, eAddress} to getData()

repeat with i from 1 to count firstName
tell application "Mail"
    activate
    set mymail to make new outgoing message at the beginning of outgoing messages with properties {subject:"INSERT SUBJECT HERE"}
    tell mymail
        make new to recipient at beginning of to recipients with properties {address:item i of eAddress}
--The next line will start each email with Hi firstName and then carriage return to the text you fill in below

        set content to "Hi " & item i of firstName & "

INSERT BODY OF EMAIL HERE"
    end tell
    --show message window (otherwise it's hidden)
    set visible of mymail to true
    --bring Mail to front
    activate
    send mymail
end tell
end repeat


on getData()
set colA to {}
set colB to {}
tell application "Microsoft Excel"

    activate
    tell active sheet
        set lastRow to first row index of (get end (last cell of column 1) direction toward the top)

        repeat with i from 3 to lastRow
            set end of colA to (value of range ("A" & i))
            set end of colB to (value of range ("B" & i))
        end repeat
    end tell
end tell

return {colA, colB}
end getData    
    
risposta data 17.12.2014 - 19:37
fonte
0

Fondamentalmente devi iniziare a leggere il file XLS con AppleScript (e poi tell "Mail" per ogni indirizzo che trovi). Come antipasto puoi consultare

e fatti strada da lì.

    
risposta data 17.12.2014 - 19:39
fonte
0

Uso questo per inviare call for papers. Invia batch di 90 e-mail in BCC da un elenco di 1000 e-mail. È un AppleScript.

set title to "Call for papers conference XXX"
set body to read "/Users/ber/Desktop/bod_of_email.txt" as «class utf8»
set addresses to read "/Users/ber/Desktop/mail/email_list_one_email_per_row.txt" as «class utf8»
set bccRecipients to {}
set c to 0

repeat with e in paragraphs of addresses
    if length of e is greater than 10 then
            copy e to the end of the bccRecipients
        set c to c + 1
        if c = 90 then
            tell application "Mail"
                activate
                tell (make new outgoing message)
                    set visible to true
                    make new recipient at end of to recipients with properties {address:"[email protected]"}
                    repeat with thisRecipient in bccRecipients as list
                        make new bcc recipient at end of bcc recipients with properties {address:thisRecipient}
                    end repeat
                    set subject to title
                    set content to body
                    send
                    delay 3
                end tell
            end tell
            set bccRecipients to {}
            set c to 0
        end if
    end if
end repeat
    
risposta data 29.05.2015 - 09:42
fonte

Leggi altre domande sui tag