Torna all'elenco delle lezioni Introduzione all'uso dell'email con REBOL

di Daniele Forsi versione 0.1 del 14 gennaio 2000

Indice

Introduzione
Uso della parola "send"
Parole attinenti ai messaggi email

Introduzione [Indice di questa lezione]

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.

Uso della parola "send" [Indice di questa lezione]

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 [Indice di questa lezione]

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


Per commenti su questa pagina o se vuoi collaborare scrivi a Daniele Forsi