| |
Invio
di e-mail da Asp
Tramite poche
righe di codice VBScript è possibile spedire
e-mail dalle proprie pagine Asp. Vedremo, inoltre, come configurare
il servizio Smtp su un server Windows NT con l’Option Pack regolarmente
installato
Internet Information Services mette a disposizione
come standard l’oggetto Cdonts (Collaboration Data Object for NT System).
La dll che definisce questo oggetto è la cdonts.dll.
Il file Asp di esempio che prendiamo in esame contiene una parte in
Html che definisce la form da completare per inviare un messaggio di
posta elettronica. Andando ad analizzare la parte di script di tale
file, si può notare che per inviare un messaggio di posta da una pagina
Asp è sufficiente allocare l’oggetto Cdonts, definire un mittente, uno
o più destinatari, l’oggetto e il corpo del messaggio e deallocare l’oggetto.
Vediamo in dettaglio, passo dopo passo, le varie operazioni da seguire.
- Allocazione dell’oggetto
’Allocazione dell’oggetto Cdonts
Set Cdonts = Server.CreateObject(”cdonts.Newmail”)
- Definizione del mittente
Il mittente è definito dalla proprietà From dell’oggetto Cdonts. Il
formato di tale campo, quindi, deve essere quello di un indirizzo e-mail
e di uno soltanto: non può contenere più indirizzi separati dal ; (punto
e virgola), come invece avviene per i destinatari.
’Definizione del mittente (e-mail)
Cdonts.From = e-mailMittente
- Definizione dei destinatari
Tre diverse proprietà definiscono i destinatari di un messaggio di posta:
Proprietà Descrizione
To Destinatari
Cc Destinatari in copia conoscenza
Bcc Destinatari in copia conoscenza nascosta
Il formato di ognuna di queste proprietà deve essere quello di un indirizzo
e-mail (per esempio, dest@popserver.com). Ciascuna di esse può contenere
valori multipli, che devono essere separati dal carattere ;, per esempio
dest1@popserver.com; dest2@popserver.com; dest3@popserver.com. Nel codice
di esempio abbiamo soltanto il destinatario To, più che sufficiente
per una form per l’invio di e-mail da Web.
’Definizione del destinatario del messaggio (e-mail)
Cdonts.To = Destinatario
- Definizione dell’oggetto del messaggio
La proprietà Subject definisce l’oggetto del messaggio
’Definizione dell’oggetto del messaggio
Cdonts.Subject = Oggetto
- Definizione del corpo del messaggio
Si definisce valorizzando la proprietà Body che deve contenere il corpo
del messaggio vero e proprio. In questo campo si possono inserire anche
i ritorno a capo per definire diversi paragrafi. È inoltre possibile
inviare una e-mail in formato Html per sfruttarne le possibilità di
formattazione.
In questo caso, il campo Body dovrà contenere il codice Html e sarà
importante impostare la proprietà BodyFormat a 0.
’Definizione del corpo del messaggio
Cdonts.Body = Messaggio
- Invio del messaggio di posta
Una volta definiti il mittente, i destinatari e il messaggio vero e
proprio, l’invio del messaggio avviene utilizzando il metodo Send. È
consigliato utilizzare il metodo Cdonts.Send senza parametri aggiuntivi
‘ Invio del messaggio e deallocazione oggetto
Cdonts.Send
È possibile – sebbene non sia consigliabile – inviare anche una e-mail
senza aver definito in precedenza il mittente, i destinatari, l’oggetto
e il corpo, ma facendo tutto in un unica istruzione, utilizzando la
seguente sintassi
Cdonts.Send([From] [, To] [, Subject] [, Body] [, Importance])
- Deallocazione dell’oggetto
Set Cdonts = nothing
Raffinamenti ulteriori
Naturalmente, per la spedizione di una e-mail da pagine
Asp, oltre alle funzionalità principali possono essere definite altre
più avanzate, molto comuni per i normali utenti di servizi di posta
elettronica, a partire dal formato del messaggio fino alla possibilità
di allegare file o Url.
- Formato
Il formato del corpo del messaggio è determinato dalla proprietà BodyFormat
secondo queste due possibilità riportate in tabella:
Valore Descrizione
0 Il campo Body è in formato Html
1 Il campo Body contiene solo testo (valore di default)
Nel nostro codice d’esempio, avremo dunque
if FormatoMessaggio=”Htm” then
Cdonts.BodyFormat = 0 ’0 Formato Html
Cdonts.MailFormat = 0
end if
- Importanza del messaggio
In una e-mail possiamo stabilire anche l’importanza che è determinata
dalla proprietà Importance. Questa stabilisce l’importanza del messaggio
in spedizione secondo i parametri:
Valore Descrizione
0 Bassa
1 Il campo Body contiene solo testo (valore di default)
2 Alta
- Invio allegati
È possibile, inoltre, allegare uno o più file al proprio messaggio di
posta utilizzando il metodo AttachFile dell’oggetto Cdonts. Questa istruzione
deve essere ovviamente posta prima dell’invio del messaggio tramite
la Send. Ecco la sintassi da seguire
Cdonts.AttachFile(PathFile [, NomeFile] [, MetodoCodifica])
dove
PathFile definisce il path completo del file da allegare
NomeFile definisce il nome del file che apparirà nel messaggio di e-
mail. Se non specificato, sarà utilizzato il nome del file in Source
MetodoCodifica definisce il metodo di codifica dell’allegato.
Può avere i seguenti valori:
0 L’allegato è in formato UUEncode (default)
1 L’allegato è in formato base 64
Invio di Url con hyperlink
È infine possibile allegare un Url con link attivo
in modo che il destinatario possa accedere a un certo sito semplicemente
cliccando sull’indirizzo segnalato all’interno del messaggio di posta.
Si utilizza in questo caso il metodo AttachURL, con la seguente sintassi
Cdonts.AttachURL (PathURL, ClientURL [, ClientURLBase] [,MetodoCodifica])
dove
PathURL È il path del link da inviare
ClientURL È il path del link per il destinatario source
ClientURLBase Se specificato, viene utilizzato con ClientURL per definire
il path completo del link per il destinatario
MetodoCodifica Puo avere gli stessi valori che assume con il metodo
AttachFile
|
|
Configurazione del servizio
Smtp
Per configurare correttamente il servizio Smtp, occorre
lanciare la Console di IIS (Internet Service Manager dal menu Windows
NT Option Pack).
Quindi, si deve espandere l’albero Internet Information Server del proprio
server e selezionare Default SMTP Site.
A questo punto, bisogna cliccare sulla scheda Delivery e impostare il
Fully Qualified Domain, che si compone concatenando il nome del server
al nome del dominio di appartenenza.
Per esempio, se il nome del server è «server» e il domino «dominio.it»,
il fully qualified domain name da impostare è server.dominio.it. Infine,
si confermi l’operazione e si chiuda la console. Su Windows 2000, la
procedura di configurazione è analoga a quella appena vista; occorre
lanciare la console Internet Services Manager dal menu Administrative
Tools.
Ricordiamo che IIS è compreso in Windows 2000, senza bisogno di installare
alcun Option Pack.
Quindi, si espanda l’albero Internet Information Services del proprio
server e si selezioni Default SMTP Virtual Server. A questo punto, in
modo del tutto simile al precedente esempio, si scelga la scheda Delivery,
e quindi si clicchi sul bottone Advanced per impostare il Fully Qualified
Domain Name, nel modo che abbiamo già visto, cioè concatenando il nome
del server al nome del dominio di appartenenza. L’operazione è ora conclusa:
sarà sufficiente confermare e chiudere la console.
Metodi alternativi per l’invio
di e-mail
Quello che abbiamo visto non è l’unico modo esistente
in Rete per spedire messaggi dalle proprie pagine Asp.
Fra questi, il più diffuso utilizza l’oggetto AspMail ed è disponibile,
per esempio, su molti server che offrono hosting Asp gratuito. La differenza
maggiore rispetto al metodo con l’oggetto Cdonts sta nella necessità
di definire esplicitamente il server Smtp da utilizzare; per il resto,
cambiano ovviamente i nomi delle proprietà e dei metodi da usare, ma
i parametri di base da impostare rimangono gli stessi dell’altro procedimento.
’Allocazione dell’oggetto AspMail
Set AspMail= Server.CreateObject (”Smtpsvg.Mailer”)
’Definizione del server Smtp
AspMail.RemoteHost = ”serversmtp”
’Definizione del mittente (nome)
AspMail.FromName = NomeMittente
’Definizione del mittente (e-mail)
AspMail.FromAddress = e-mailMittente
’Definizione del destinatario del messaggio
AspMail.AddRecipient NomeDestinatario, e-mailDestinatario
’Definizione dell’oggetto del messaggio
AspMail.Subject = Oggetto
’Definizione del corpo del messaggio
AspMail.BodyText = Messaggio
’Invio del messaggio e deallocazione oggetto
if AspMail.SendMail then
ok=true
else
ok=false
end if
Set AspMail= Nothing
Autori:
Albino Pagliari e Matteo Bianchessi
|