|
ASP: la guida introduttiva
17.0 Posta elettronica
su macchine Windows NT/2000
17.1 CDONTS.NewMail
17.2 Applicazione
"form-mail"
17.3 Invio
di allegati
17.4 Conclusioni
17.0 - Posta elettronica su macchine Windows NT/2000
Il
funzionamento di un servizio di posta elettronica è garantito
dalla collaborazione di tre distinti: un server che si
occupa della consegna dei messaggi (protocollo SMTP), un server
che riceve i messaggi, li archivia e li trasmette, su richiesta,
al titolare della casella (protocollo POP3 o IMAP) e un client
che, dal PC dell'utente, è in grado di inviare e ricevere e-mail
collegandosi e dialogando con le due parti server del servizio.
I Web server non offrono funzionalità di posta elettronica,
tuttavia le macchine che ospitano servizi Web, spesso e
volentieri, permettono anche l'invio delle e-mail, tramite un
apposito server SMTP. Su Windows NT/2000, il server di posta
elettronica più diffuso è Microsoft Exchange. Insieme ad esso
viene installata anche una libreria ActiveX, chiamata
CDONTS (Collaboration Data Object
for Windows NT Server), che permette ad applicazioni esterne
di collegarsi al server per inviare o ricevere la posta
elettronica. Anche una pagina ASP, quindi, può sfruttare il
server SMPT presente nel sistema, inviando e-mail generate
dinamicamente.
17.1 - CDONTS.NewMail
CDONTS comprende diversi oggetti che incapsulano funzionalità
legate, in un modo o nell'altro, al mondo della posta
elettronica. Una pagina ASP, salvo rare eccezioni, necessiterà
al massimo di interagire con un server SMTP per il semplice
invio di una e-mail. L'oggetto utile per compiere questa
operazione si chiama NewMail.
|
Proprietà |
|
Bcc |
Specifica la lista dei destinatari invisibili in copia
carbone. Di sola scrittura. |
|
Body |
Specifica il corpo della missiva. Di sola scrittura. |
|
BodyFormat |
Specifica il formato del corpo della e-mail (0 = HTML, 1 =
testo semplice). Di sola scrittura. |
|
Cc |
Specifica la lista dei destinatari in copia carbone. Di sola
scrittura. |
|
ContentBase |
Specifica il percorso di base degli URL che saranno
contenuti nella missiva. Di sola scrittura. |
|
ContentLocation |
Specifica il percorso di base, assoluto o relativo, degli
URL che saranno contenuti nella missiva. Di sola scrittura. |
|
From |
Specifica il mittente. Di sola scrittura. |
|
Importance |
Specifica l'importanza della missiva (0 = bassa, 1 = media,
2 = alta). Di sola scrittura. |
|
MailFormat |
Specifica il formato della mail (0 = MIME, 1 = testo
semplice). Di sola scrittura. |
|
Subject |
Specifica l'oggetto della missiva. Di sola scrittura. |
|
To |
Specifica la lista dei destinatari. Di sola scrittura. |
|
Version |
Restituisce la versione di CDONTS. Di sola lettura. |
|
Metodi |
|
AttachFile |
Aggiunge un allegato. |
|
AttachURL |
Aggiunge un allegato, associandogli un URL da poter
utilizzare nel corpo della mail. |
|
Send |
Invia la mail. |
|
SetLocaleIDs |
Imposta l'identificatore locale per la mail. |
|
Collezioni |
|
Value |
Permette di impostare intestazioni aggiuntive. |
L'oggetto NewMail può essere istanziato alla seguente maniera:
var mail = new ActiveXObject("CDONTS.NewMail");
Da
questo momento in poi è possibile specificare i valori che
costituiscono la missiva, come il destinatario, il mittente,
l'oggetto e il corpo:
mail.To = "destinatario@host1.it";
mail.From = "mittente@host2.it";
mail.Subject = "Oggetto della missiva";
mail.Body = "Corpo della missiva";
Si
può quindi procedere con l'invio:
mail.Send();
17.2 - Applicazione "form-mail"
Molti siti chiedono ai propri visitatori di esternare pareri e
consigli sui servizi offerti. Di norma questi vengono raccolti
in un modulo HTML, per essere poi spediti, tramite e-mail, al
webmaster del sito. Si realizzerà ora una semplice applicazione
di questo tipo, al fine di dimostrare l'utilizzo dell'oggetto
NewMail. E' necessario predisporre un modulo HTML per l'invio
dei dati:
<html>
<head>
<title>Invia il tuo parere!</title>
</head>
<body>
<form action="formmail.asp" method="post">
<b>Il tuo nome:</b><br>
<input type="text" name="nome"><br>
<b>Il tuo parere sul sito:</b><br>
<textarea name="parere" cols="40" rows="10"></textarea>
<br><br>
<input type="submit" value="Invia">
<input type="reset" value="Cancella">
</form>
</body>
</html>
I
campi del modulo vengono passati al documento
formmail.asp:
<%@ LANGUAGE = JScript %>
<%
var nome = new String(Request.Form("nome"));
var parere = new String(Request.Form("parere"));
var mail = new ActiveXObject("CDONTS.NewMail");
// Immettere un destinatario esistente!
mail.To = "destinatario@host.it";
mail.From = "formmail@nohost.it";
mail.Subject = "Parere da " + nome;
mail.Body = parere;
mail.Send();
%>
<html>
<head>
<title>Grazie!</title>
</head>
<body>
Il tuo parere è stato inviato!
</body>
</html>
Si
modifichi anzitutto il destinatario della missiva, introducendo
il proprio indirizzo e-mail per il test, quindi ci si colleghi
al modulo e si verifichi il risultato.
17.3 - Invio di allegati
NewMail permette l'invio di allegati, purché i file da allegare
siano presenti sull'hard disk del server. Un allegato può essere
aggiunto con il metodo AttachFile():
mail.AttachFile(percorso,nome);
Il
parametro percorso indica, sull'hard
disk del server, il percorso completo del file da allegare. Se
questo non è noto, può sempre essere ricavato da un percorso
relativo con Server.MapPath(). Il parametro
nome, invece, indica il nome che il file riceverà sul
client del destinatario. Il seguente esempio invia una mail
allegando il file immagine.jpg, che
deve essere inserito nella stessa cartella dello script:
<%@ LANGUAGE = JScript %>
<%
var mail = new ActiveXObject("CDONTS.NewMail");
mail.MailFormat = 0; // Mail MIME
mail.AttachFile(Server.MapPath("immagine.jpg"),"immagine.jpg");
// Immettere un destinatario esistente!
mail.To = "destinatario@host.it";
mail.From = "aspmail@nohost.it";
mail.Subject = "Con allegato...";
mail.Body = "Ti piace l'immagine?";
mail.Send();
%>
<html>
<head>
<title>Inviata!</title>
</head>
<body>
La mail con allegato è stata inviata!
</body>
</html>
Le
e-mail con allegato devono essere in formato MIME.
17.4 - Conclusioni
CDONTS, oltre all'oggetto NewMail, comprende anche una lunga
serie di altri componenti. Questi, di norma, non sono utilizzati
in pagine ASP, poiché le funzionalità offerte non trovano posto
in una generica applicazione Web. Inviare una mail, invece, è
operazione abbastanza semplice e comune. Si è visto velocemente
quali sono le principali caratteristiche di NewMail, confermando
gli schemi tecnici con alcuni esempi pratici. |