jump to navigation

Mandare email a più persone usando AppleScript 9 Giugno 2008

Posted by fripp in AppleScript, Informatica, Mac OS X, Programmazione, Sistemi Operativi.
Tags: , , ,
trackback

Mi capita spesso di dover mandare la stessa email a tutte le persone del gruppo LiberaMente, di cui faccio parte.

Per automatizzare la cosa, ho creato un piccolo script AppleScript.

Ecco il sorgente:


set date_dialog to display dialog "Inserisci l'oggetto" default answer ""
set the_subject to text returned of date_dialog

tell application "Address Book"
    set name_list to every person of group "Liberamente"

    set email_value_list to {}

    repeat with p in name_list

        set end of email_value_list to value of every email of p

    end repeat

end tell

tell application "Mail"
    activate

    set new_message to make new outgoing message with properties {subject:the_subject, visible:true}

    tell new_message
        repeat with i from 1 to (count email_value_list)

            repeat with j from 1 to (count item i of email_value_list)
                make new to recipient with properties {address:item j of item i of email_value_list}
            end repeat

        end repeat

    end tell

end tell

Vediamo in breve come funziona.

Il primi due righi di codice
set date_dialog to display dialog "Inserisci l'oggetto" default answer ""
set the_subject to text returned of date_dialog

fanno comparire una finestra di dialogo che permette all’utente di inserire l’oggetto della mail.

Il blocco di codice


tell application "Address Book"
	set name_list to every person of group "Liberamente"

	set email_value_list to {}

	repeat with p in name_list

		set end of email_value_list to value of every email of p

	end repeat

end tell

estrae dalla Rubrica Indirizzi tutti i membri del gruppo “Liberamente” e li memorizza nella variabile name_list.
Il successivo ciclo repeat estrae le email di tutti i membri del gruppo e li aggiunge alla lista email_value_list.

Il successivo blocco tell dice a Mail di creare un nuovo messaggio di posta avente come oggetto quello inserito dall’utente:
set new_message to make new outgoing message with properties {subject:the_subject, visible:true}.

Il successivo blocco tell serve per inizializzare la lista dei destinatari con tutte le email contenute in email_value_list.

Commenti»

1. Aldo Filippini - 22 Settembre 2008

non ho capito se la procedura può funzionare anche per email formattate ( con i modelli di Mail 3)

grazie in ogni caso

aldo

2. fripp - 22 Settembre 2008

Certo che funziona. Lo script si limita a creare il messaggio mettendo come destinatari i membri di un gruppo di indirizzi di Address Book. Poi il modello te lo crei tu

3. marco - 8 Novembre 2008

ma dove lo devo mettere lo script?

4. fripp - 8 Novembre 2008

Lo metti dove più ti garba. Devi esser tu a invocarlo