![]() | Le email con REBOL |
Il modo più semplice per inviare una email tramite REBOL
è usare la parola 'send che richiede due argomenti obbligatori,
cioè una parola di tipo email!, contenente l'indirizzo del
destinatario e una parola di tipo string! che contiene il messaggio
in formato testo.
Questo è l'esempio "ufficiale" probabilmente scritto verso maggio 1999:
send luke@rebol.com "Use the force"
che può essere scritto in modo più prolisso nel seguente modo:
destinatario: luke@rebol.com ; il valore è di tipo email!, quindi non servono le doppie virgolette messaggio: "Use the force" ; il valore è di tipo string! send destinatario messaggio
ed ha come risultato di inviare un messaggio contenente una serie di header RFC predefiniti, con la data dell'istante in cui si esegue la parola 'send e come oggetto del messaggio, al massimo, i primi 50 caratteri della prima riga del messaggio. Naturalmente è necessario avere impostato correttamente il sistema per quanto riguarda il server SMTP e l'eventuale proxy (che in genere per l'email è necessario solo se si accede ad Internet tramite un firewall o una rete locale), cosa che viene fatta automaticamente all'avvio di REBOL tramite lo script %user.r.
Richiedendo l'help relativo a 'send si può vedere una breve descrizione delle sue possibilità di utilizzo (in Inglese):
help send Send a message to an address (or block of addresses) Arguments: address -- An address or block of addresses (email block) message -- Text of message. First line is subject. Refinements: /only -- Send only one message to multiple addresses /header -- Supply your own custom header header-obj -- The header to use (object)
Una caratteristica interessante è quella di poter inviare lo stesso
messaggio a più persone semplicemente racchiudendone gli indirizzi in un
block!, in tal caso è conveniente usare i "refinements" che servono
per specificare un comportamento diverso della parola, in particolare l'opzione
/only che, sfruttando una caratteristica del protocollo SMTP, permette di
inviare un unico messaggio e lascia che sia il server a copiarlo ai vari
destinatari:
Gli indirizzi possono essere presenti sia in modo esplicito, sia in modo
implicito, cioè come valori di parole racchiuse tra parentesi
(ciò grazie all'uso di 'reduce):
send/only [ luke@rebol.com (secondo-destinatario) (terzo-destinatario) ] "messaggio di prova"
Normalmente si desidera inserire come soggetto una frase diversa dalla prima riga del messaggio (che di solito è un saluto), per cui è necessario usare l'opzione /header fornendo una parola di tipo object! contenente tutti gli elementi dell'header che sono necessari. Usando come modello l'object! system/standard/email è sufficiente specificare solo gli elementi dell'header che si vuole personalizzare perché gli altri verranno inseriti automaticamente (NOTA: in REBOL versione 2.1.2 è necessario specificare anche il mittente nel campo from:), per cui l'esempio precedente può essere modificato così:
send/header/only [ luke@rebol.com (secondo-destinatario) (terzo-destinatario) ] "messaggio di prova" make system/standard/email [ from: system/user/email subject: "L'oggetto del messaggio" ]
Per vedere il contenuto dell'header predefinito si può digitare:
print mold make system/standard/email [ ]
è possibile assegnare i valori desiderati a tutti gli elementi presenti ed è possibile aggiungerne altri (magari di tipo X-header).
Parole attinenti ai messaggi email:
email! | identifica il tipo di dati "indirizzo di posta elettronica" |
email? | verifica se la parola passata come argomento è di tipo email! |
import-email | esamina una parola di tipo string! contenente un messaggio completo di header e restituisce un block! contenente le parti del messsaggio |
net-error | una funzione "mezzanina" per generare un errore |
parse-email-addrs | crea un block! di valori email! esaminando l'argomento di tipo string! (è intesa per le liste di indirizzi tipo to:, cc: o bcc:) |
parse-header | esamina una parola di tipo string! contenente l'header di un messaggio costruendo un block! con i valori letti o quelli forniti come default |
parse-header-date | esegue la funzione inversa rispetto a to-idate |
resend | un modo semplificato per inviare un messaggio email (non aggiunge nessun tipo di header) |
send | invia ad un singolo indirizzo o ad una serie di indirizzi il contenuto di una parola di tipo string! (di cui al massimo 50 caratteri della prima riga sono usati come soggetto) ad un singolo indirizzo o ad un block! di indirizzi |
set-net | imposta l'indirizzo email, i server POP e SMTP e il proxy |
set-user | crea il file user.r contenente anche le impostazioni per 'set-net |
to-email | restituisce un valore di tipo email! e contenuto uguale all'argomento fornito, se possibile |
to-idate | trasforma un valore di tipo date! in una stringa nel formato "ggg, G mmm aaaa hh:mm:ss fuso-orario" adatta ai messaggi email |
<--Prev | Index | Next--> |