asp - asp.net - aspcode.it

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

  > > Articoli

Inviare un'e-mail con ASP.NET

Data di pubblicazione: 21/05/2002        Voto della community: 3,89 (Votanti: 3)

In questo articolo vedremo come sia possibile, seguendo pochi e semplici passi, inviare un' e-mail dalle nostre pagine in ASP.NET.
Il listato è stato redatto sia in C# che in VB.NET (i due linguaggi più usati di ASP.NET).
Inoltre il codice è stato testato con la versione definitiva (la 1.0, non la Beta 2) del Framework di ASP.NET, scaricabile qui: http://www.asp.net/download.aspx

Dunque, i passi da seguire sono fondamentalmente tre:
  • Includere il giusto namespace ad inizio pagina. (nel nostro caso è System.Web.Mail). Questo contiene tutti gli oggetti che ci servono per inviare un'e-mail.
  • Istanziare un oggetto della classe MailMessage e settarne le proprietà (almeno quelle fondamentali). Eccone un elenco (in grassetto quelle basilari):
ProprietàDescrizione
FromIndirizzo email del mittente
ToIndirizzo email del destinatario
SubjectOggetto del messaggio
BodyCorpo del messaggio
CCLista di destinatari in copia di cortesia
BCCLista di destinatari in copia di cortesia non visibile
PriorityPriorità del messaggio – valori possibili: high, low oppure normal
BodyEncodingTipo di codifica del messaggio – valori possibili: Base64 oppure UUencode
BodyFormatFormato del messaggio - valori possibili: Html oppure text
AttachmentsLista di oggetti di tipo MailAttachment allegati all'e-mail
  • Inviare l'e-mail grazie al metodo Send() dell'oggetto SmtpMail.
Ed ecco il listato in C#, ampiamente commentato:

<%@page language="C#"%>
<%@ Import Namespace="System.Web.Mail" %>

<SCRIPT LANGUAGE="C#" RUNAT="server">
public void SendMail (Object Obj, EventArgs E) {

  // Creiamo un'istanza dell'oggetto MailMessage
  MailMessage objMail = new MailMessage();

  // questo e' il messaggio di default che comparira' a video dopo l'invio
  string strTemp = "Email inviata correttamente";

  // Queste sono le proprieta' obbligatorie che dobbiamo impostare
  objMail.From = MsgFrom.Text;
  objMail.To = MsgTo.Text;
  objMail.Subject = MsgSubject.Text;
  objMail.Body = MsgBody.Text;

  // Queste invece sono opzionali

  // impostiamo ad HTML il formato dell'email
  // objMail.BodyFormat = MailFormat.Html;

  // il formato di Codifica del messaggio : Base64, UUencode etc.
  // objMail.BodyEncoding = MailFormat.Base64;

  // settiamo ad alta la priorita' del messaggio
  // objMail.Priority = MailPriority.High;

  // alleghiamo un file all'email.
  // objMail.Attachments.Add(new MailAttachment("c:\\file.zip"));

  // la riga seguente serve solo se non abbiamo installato
  // nel Web Server il servizio Microsoft SMTP
  // SmtpMail.SmtpServer = "smtp.provider.it";

  try { // proviamo ad inviare l'email...
    SmtpMail.Send(objMail);
  }
  catch ( Exception Ex ) { // si e' verificato un errore
    strTemp = "Errore nell'invio: ";
    strTemp += Ex.Message;
  }
  lblMessaggio.Text = strTemp; // mostriamo a video l'esito dell'invio
}
</SCRIPT>

<HTML>
<BODY>
<form method="post" runat="server">
<table>
  <tr>
    <td></td>
    <td><asp:Label id="lblMessaggio" runat="server"/></td>
  </tr>
  <tr>
    <td>Destinatario:</td>
    <td><asp:Textbox id="MsgTo" runat="server"/></td>
  </tr>
  <tr>
    <td>Mittente:</td>
    <td><asp:Textbox id="MsgFrom" runat="server"/></td>
  </tr>
  <tr>
    <td>Oggetto del messaggio:</td>
    <td><asp:Textbox id="MsgSubject" runat="server"/></td>
  </tr>
  <tr>
    <td>Contenuto del messaggio:</td>
    <td><asp:Textbox TextMode="multiline" Rows="7" id="MsgBody" runat="server"/></td>
  </tr>
  <tr>
    <td> </td>
    <td ALIGN="center"><asp:button Text="Invia" onClick="SendMail" id="Send" runat="server"/></td>
  </tr>
</table>
</form>
</BODY>
</HTML>

E questo è invece il codice dell'analoga funzione SendMail() scritta però in VB.NET:

<SCRIPT LANGUAGE="VB" RUNAT="server">
Sub SendMail(Obj As Object, E As EventArgs)

  ' Creiamo un'istanza dell'oggetto MailMessage
  Dim objMail AS new MailMessage

  ' questo e' il messaggio di default che comparira' a video dopo l'invio
  Dim strTemp AS String = "Email inviata correttamente"

  ' Queste sono le proprieta' pricipali che dobbiamo impostare
  objMail.From = MsgFrom.Text
  objMail.To = MsgTo.Text
  objMail.Subject = MsgSubject.Text
  objMail.Body = MsgBody.Text

  ' Queste invece sono opzionali
  ' impostiamo ad HTML il formato dell'email
  ' objMail.BodyFormat = MailFormat.Html

  ' il formato di Codifica del messaggio : Base64, UUencode
  ' objMail.BodyEncoding = MailFormat.Base64

  ' settiamo ad alta la priorita' del messaggio
  ' objMail.Priority = MailPriority.High

  ' alleghiamo un file all'email.
  ' objMail.Attachments.Add(new MailAttachment("c:\file.zip"))

  ' la riga seguente serve solo se non abbiamo installato
  ' nel Web Server il servizio Microsoft SMTP
  ' SmtpMail.SmtpServer = "smtp.provider.it"


  Try ' proviamo ad inviare l'email...
    SmtpMail.Send(objMail)
  Catch Ex AS Exception ' si e' verificato un errore
    strTemp = "Errore nell'invio: "
' adesso Visual Basic supporta l'operatore di concatenazione del C
    strTemp += Ex.Message
  End Try
  lblMessaggio.Text = strTemp ' mostriamo a video l'esito dell'invio
End Sub
</SCRIPT>

Se siamo più avvezzi al Visual Basic piuttosto che al C, basterà semplicemente cambiare la direttiva ad inizio pagina:

<%@page language="C#"%>

con quest'altra:

<%@page language="VB"%>

ed ovviamente utilizzare lo script in VB.NET. La parte HTML resta inalterata.
Arrivederci.




Utenti connessi: 1157