Redazione
a- a+

Inviare email con ASP

Vediamo come inviare email singole e multiple grazie all'oggetto CDONTS. Esempi.

Una grande potenzialità di IIS
Uno degli strumenti piu' potenti del web server professionale di Microsoft (IIS - Internet Information Service) è l'oggetto CDONTS (Collaboration Data Objects per NT Server) che permette l'invio di email singole e multiple. Questo è un oggetto "nativo" di IIS quindi non è necessario acquistarlo o installarlo (tranne nel caso non si è installato al momento del setup).

Il server SMTP e la sua configurazione
Il server SMTP è lo strumento che permette di inviare email. Vediamo come configurarlo all'interno di IIS (sui sistemi Win 2000 e superiori è installato di default).
Avviare Internet Service Manager e controllare se è presente un sito SMTP col nome di Default SMTP Site, fare un doppio click sul nome e verrà aperta una finestra per la configurazione.
Solitamente non è necessario effettuare alcuna modifica. L'unica modifica che si può cambiare tranquillamente è il numero di tentativi di invio di un'email nel caso non riesce a farlo la prima volta.

Il servizio SMTP necessita di 4 cartelle per l'invio e la ricezione di email e per email chiamate bademail in quanto né destinatario né mittente sono esistenti. Nella cartella chiamata Queue (che raccoglie le email con cui provare l'invio in quanto la prima volta è fallito) possiamo trovare dei file transcript che permettono di comprendere quali tipi di errori possono essersi verificati.

Invio di email con ASP
Una soluzione per l'invio delle email è sarebbe inserirle direttamente nella cartella di invio, ma CDONTS ci aiuta ad evitare questo procedimento laborioso e permette di creare in pochi secondi una email completa.

Per utilizzarlo dobbiamo creare l'oggetto CDONTS.NewMail e chiamare il suo metodo Send. Vediamo subito un po' di codice per chiarirci le idee:

Codice 2.1

<%@ Language=VBScript %>
<% 
' Dichiarazioni variabili utilizzate
Dim objMail, mittente, destinatario, oggetto, corpo
' Creazione oggetto CDONTS
Set objMail = CreateObject("CDONTS.NewMail")
' Assegnazioni valori variabili
mittente = "lorenzo.pascucci@webmasterpoint.org"
destinatario = "utente@dominio.it"
oggetto = "Invio email di prova"
corpo = "Test!"
' Creazione email
objMail.From = mittente
objMail.To = destinatario
objMail.Subject = oggetto
objMail.Body = corpo
' Invio email con il metodo Send
objMail.Send
' Distruzione oggetto
Set objMail = Nothing
%>

Come vedete l'invio di una email si basa essenzialmente sulla scrittura di 6 righe (creazione oggetto, impostazione mittente, destinatario, oggetto e corpo, invio). E' possibile tuttavia, inviare email molto piu' complesse e complete, vediamo come.

Email complete CDONTS
Per inviare email con allegati, con una determinata priorità, etc... è possibile utilizzare determinati metodi.
Di default sono tutti uguali a 0.

.AttachFile
Per allegare un file:

.AttachFile nomefile, "Nome da assegnare"

.Importance
Per impostare una prorità:

.Importance 1

Dove: 0 è bassa, 1 è normale, 2 alta.

.MailFormat
Per impostare il formato dell'email:

.MailFormat = 1

Dove: 0 è Mime, 1 è Testo

.BodyFormat
Per impostare il formato del corpo dell'email:

.BodyFormat = 1

Dove: 0 è Html, 1 è Testo

Inviare un corpo lungo su piu' righe.
Se si deve inviare un messaggio su piu' righe, con il corpo dell'email in formato testuale (.BodyFormat = 1) è necessario utilizzare il comando vbNewLine.

Corpo = "Ciao" & vbNewLine
Corpo = Corpo & "questo è un messaggio di prova," & vbNewLine
Corpo = Corpo & "per inserire un testo su piu' righe." & vbNewLine

Un sistema piu' comodo può essere quello di memorizzare vbNewLine in una variabile piu' facile e veloce da scrivere, in questo modo:

aCapo = vbNewLine
Corpo = "Ciao" & aCapo
Corpo = Corpo & "questo è un messaggio di prova," & aCapo
Corpo = Corpo & "per inserire un testo su piu' righe." & aCapo

Mentre per inviare una email con il corpo in html basterà assegnare a .BodyFormat = 0 (per le righe basterà utilizzare i tag html come <br> o <p>).

Invio di email multiple
Per inviare un'email a piu' persone ci sono principalmente 2 metodi: inviarla attraverso .Type o attraverso una serie di invii.
E' possibile decidere di inviare l'email a un destinatario (.To), in copia ad un'altra persona (.CC) e in copia nascosta ancora ad un'altra (.BCC).

Un metodo molto comodo per inviare email personalizzate (es. Caro Nome e Cognome) è fare una query (con SQL per esempio) su un database con dati (compresa l'email) dei nostri utenti ricavare i dati necessari da inserire nell'email e passarli alla function invio che invierà l'email.

Codice 2.2

<%@ Language=VBScript %>
<% 
' Dichiarazioni variabili utilizzate
Dim objMail, mittente, destinatario, oggetto, corpo

' Funzione invio email
Sub invio(nome,email)
   ' Creazione oggetto CDONTS
   Set objMail = CreateObject("CDONTS.NewMail")
   ' Assegnazioni valori variabili
   mittente = "lorenzo@wmp.org"
   destinatario = email
   oggetto = "Invio email di prova"
   corpo = "Test per l'utente " & nome
   ' Creazione email
   objMail.From = mittente
   objMail.To = destinatario
   objMail.Subject = oggetto
   objMail.Body = corpo
   objMail.Importance = 2
   ' Invio email con il metodo Send
   objMail.Send
   ' Distruzione oggetto
   Set objMail = Nothing
End Sub

' Query nel database nella tabella utenti
sql = "SELECT * FROM utenti"
' Connessione database e apertura recordset...

Do While NOT rs.EOF
   ' Prendo dati dal database
   nomeutente = rs("nome")
   emailutente = rs("email")
   ' Passo i dati alla funzione invio
   invio nome, email
rs.MoveNext
Loop

' Chiusura connessione database
%>

Altri componenti email
A volta i provider di servizi hosting possono mettere a disposizione altri componenti per inviare email, i piu' comuni sono ASPmail e JMAIL, due componenti a pagamento ma molto potenti anche rispetto a CDONTS. (P.S. Il nostro server per esempio utilizza ASPMail per questo non possiamo far visualizzare gli esempi di questa lezione online, che comunque trovate in allegato alla lezione da scaricare).

Questa scelta è dovuta, oltre alle enormi capacità di questi componenti, anche al fatto che molti amministratori di server hanno preferito scegliere questa soluzione anziché adottare CDONTS che nelle vecchie versioni (su Win NT 4.x) presentava diversi seri bug, oramai superati.

Il loro utilizzo è altrettanto semplice, a volta i comandi sono identici e comunque hanno manuali che illustrano tutte le caratteristiche.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Redazione
Condividi le tue opinioni su questo articolo!