Logo FreeAspx
Home Login Classi Framework .NET Newsgroup Blog Segnala applicazione Link
Cartucce compatibili
ASP.NET VB.NET C# ASP SHAREPOINT
Imposta come home Imposta come Home
Aggiungi ai preferiti Aggiungi ai preferiti
Registrati nella Community Registrati
Generatore connessione db Generatore connessione db
Generatore di Query Generatore di Query
Cerca nel sito



Stiamo preparando il nuovo SB2Dev, dove vorreste che fosse fatto?
 Roma
73%

 Napoli
8,7%

 Firenze
11,7%

 Bari
6,7%

LEZIONI

Opzioni pagina Articoli e Lezioni di FreeAspx.it
Stampa
Invia ad amico
Aggiungi ai Preferiti

Corso ASP - Parte seconda

Form di feedback

Con il termine form di feedback si intende un modulo (form) riempiendo il quale un utente può inviare un messaggo semplicemente spingendo un pulsante.

<html>
<head>
<title>Input form per AspMail</title>
</head>
<body bgcolor="#FFFFFF">
<h1>Modulo di richiesta</h1>
<form method="POST" action="aspmail2.asp">

L'attributo action nel marcatore form serve a richiamare il file aspmail2.asp che elabora i dati inviati attraverso il modulo.

<table border="0">
<tr>
<td>Nome</td>

Ogni casella di testo deve essere identificata con un nome attraverso l'attributo name.

<td><input type="text" name="nome" size="25"></td>
</tr>
<tr>
<td>Telefono</td>
<td><input type="text" name="tel" size="15"></td>
</tr>
<tr>
<td>Indirizzo</td>
<td><textarea name="indirizzo" rows="3" cols="30"></textarea></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email" size="20"></td>
</tr>
<tr>
<td>Note</td>
<td><textarea name="commenti" rows="4" cols="30"></textarea></td>
</tr>
<tr>
<td><input type="submit" value="Invia"></td>
</tr>
</table>
</form>
</body>
</html>

Il file AspMAIL2.asp
<html>
<head>
<title>Uso dell'ogetto request con le variabili</title>
</head>
<body bgcolor="#FFFFFF">

Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
strNome = request.querystring("nome")
strTel = request.querystring("tel")
strIndirizzo = request.querystring("indirizzo")
strEmail = request.querystring("email")
strCommenti = request.querystring("commenti")

L'istruzione Server.CreateObject crea un oggetto a partire da un'istanza di un oggetto preesistente (SMTPsvgMailer).

La variabile Mailer, in quanto istanza dell'oggetto SMTPsvgMailer, assume tutte le caratteristiche ed i metodi dell'oggetto, ovvero FromName, FromAddress, RemoteHost, AddRecipient, BodyText, ecc.

Con l'istruzione request.querystring si passano al server i dati inseriti nelle varie caselle di testo assegnando ciascun valore a una variabile: strNome per nome strTel per tel e via di seguito.

Mailer.FromName = strNome
Mailer.FromAddress = strEmail

Con queste due istruzioni si assegnano nome e indirizzo del mittente. Questi sono campi obbligatori.

Mailer.RemoteHost = "mail.mix.it"

Con queste due istruzioni si assegna quindi l'indirizzo del server SMTP attraverso il quale inoltrare la posta.

Mailer.AddRecipient "Nome Cognome", "nome.cognome@telecomitalia.it"

Quest'istruzione permette di assegnare l'indirizzo del destinatario.

Mailer.Subject = "Modulo on line di informazioni"

e quest'altra il Subject del messaggio.

strBody = "Caro Nome e Cognome" & vbCrLf & vbCrLf
strBody = strBody & "Il mio nome è " & strNome & vbCrLf
strBody = strBody & "Abito in " &strIndirizzo & vbCrLf
strBody = strBody & "Il mio numero di telefono è " & strTel & vbCrLf
strBody = strBody & "La mia e-mail è " &strEmail & vbCrLf
strBody = strBody & "Ti invio i miei commenti: " &strCommenti & vbCrLf
Mailer.BodyText = strBody

Con queste due istruzioni si definisce il corpo del messaggio. Ogni variabile strBody assume il valore della stringa tra virgolette più i caratteri vbCrLf che servono ad andare a capo. Ogni strBody viene concatenata alla successiva in modo che strBody risultante costituisca il corpo del messaggio.

Per verificare il corretto inserimento dei dati si può realizzare una sequenza di istruzioni simile alla precedente:0

strPrimaLinea = "Il nome fornito è: " & strNome
strSecLinea = "Il numero di telefono indicato è: " & strTel
strTerzaLinea = "L'indirizzo fornito: " & strIndirizzo
strQuartaLinea="La e-mail fornita:" &strEmail
strQuintaLinea="I commenti proposti sono:"&strCommenti

Per inviare il messaggio si può utilizzare il metodo SendMail. A questo proposito è necessario ricordare che SendMail si appoggia al protocollo SMTP (Simple Mail Transfer Protocol) per l'invio della posta elettronica e che quindi occorre sempre specificare l'indirizzo del server SMTP cioè della macchina che si occupa di inviare i messaggi.

if Mailer.SendMail then
Response.Write "Posta Inviata..."
response.write strPrimaLinea & "<BR>"
response.write strSecLinea & "<BR>"
response.write strTerzaLinea & "<BR>"
response.write strQuartaLinea & "<BR>"
response.write strQuintaLinea & "<BR>"
else
Response.Write "Invio del messaggio fallito. Controllare il nome del server di posta e la connessione TCP/IP...<br>"

SendMail può restituire un valore vero o falso. Se si verifica la condizione vero Mailer.SendMail(True), il browser visualizzerà il messaggio "Posta Inviata" e un resoconto dei dati inseriti; in caso contrario (else) il browser visualizzerà un messaggio che comunicherà all'utente la presenza di problemi nell'invio dei dati.

Response.Write Mailer.Response
end if
%>
</body>
</html>

Infine, utilizzando l'oggetto Response e il metodo Write si ottiene una stampa a video di tutte le variabili.

Per funzionare, lo script appena descritto richiede il componente ASPMail (smtpsvg.dll) che va registrato utilizzando l'istruzione da riga di comando regsvr32 [drive]:\[percorso]\smtpsvg.dll.

Proprietà e metodi del componente ASPMail
Proprietà

FromName
Nome del mittente.


FromAddress
Indirizzo e-mail del mittente.


Subject
L'oggetto, ovvero il titolo, del messaggio.


BodyText
Il testo del messaggio.


RemoteHost
Il server SMTP al quale appoggiarsi per l'invio del messaggio.

Metodi

AddRecipient name, email addr
Inserisce nome e indirizzo e-mail nel campo "To:" del messaggio.


SendMail
Non dispone di alcuna proprietà; si limita a restituire un valore True o False a indicare la riuscita o il fallimento nell'invio del messaggio e-mail.


Errori
Una volta invocato il SendMail e verificato l'avvenuto invio del messaggio, in caso di errore è utile poter conoscere la condizione che l'ha causato. ASPMail dispone di una proprietà Response contenente una descrizione delle cause del mancato invio del messaggio.

Esempio
if Mailer.SendMail then
'Invio del messaggio riuscito
response.write ("Messaggio inviato")
else
'Invio del messaggio non riuscito
response.write ("Impossibile inviare il messaggio")
response.write ("a causa del seguente errore: " & Mailer.Response)
end if
--


SITI PARTNER
AspCode.it DevSpy.com Webmasterpoint.org
Mr. Webmaster

finding ASP.NET Resources is as easy as 1..2..3..
MSDN Microsoft
Info Contatti File RSS Policy Accessibilità
Copyright 2001 - 2008 Fulvio Giaccari & SB Soft® Srl - All Rights Reserved - P.IVA 03917610754
V. 2.0.1891.25145  5