asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 17638
ASPCode.it - Store
<< lezione precedente

ASP: la guida introduttiva - Capitolo 17 - Inviare e-mail con CDONTS

   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 software: 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.

<< lezione precedente


Utenti connessi: 17638