by WebInfinity
27. giugno 2011 11:47
Oggi vediamo come si crea un form mail in asp.net per l'invio di un'email direttamente da sito web.
Innnanzi tutto dobbiamo creare i controlli sulla pagina aspx e per fare questo possiamo utilizzare i textbox forniti da visual studio 2010

così da avere vari controlli per la compilazione della notra form.
A questo punto andiamo ad inserire un button in fondo al form così da poter associarvi un azione. Di seguito trovate il codice:
Protected Sub obInvia_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles obInvia.Click
Dim mailObj As New MailMessage()
mailObj.From = New MailAddress(otbMail.Text.ToString())
mailObj.To.Add(New MailAddress("info@tuodominio.it"))
mailObj.Subject = otbObject.Text.ToString()
Dim RealMail As String = getHtml(Server.MapPath("TemplateMail/MailGenerica.htm"))
mailObj.Body = RealMail
mailObj.Body = mailObj.Body.Replace("<% uNome %>", otbNome.Text.ToString())
mailObj.Body = mailObj.Body.Replace("<% uAzienda %>", otbAzienda.Text.ToString())
mailObj.Body = mailObj.Body.Replace("<% uTelefono %>", otbTel.Text.ToString())
mailObj.Body = mailObj.Body.Replace("<% uCorpo %>", otbMessage.Text.ToString())
mailObj.Body = mailObj.Body.Replace("<% uAnno %>", Date.Now.Year.ToString())
mailObj.IsBodyHtml = True
Dim oSmtp1 As New SmtpClient("mail.tuodominio.it", 587)
Dim oCredential1 As New NetworkCredential("info@tuodominio.it", "password")
oSmtp1.DeliveryMethod = SmtpDeliveryMethod.Network
oSmtp1.UseDefaultCredentials = False
oSmtp1.Credentials = oCredential1
oSmtp1.Send(mailObj)
Session("Nome1") = otbNome.Text.ToString() & " " & otbNome.Text.ToString()
Session("Mail1") = otbMail.Text.ToString()
Response.Redirect("pagina-cortesia-mail.html")
End Sub
come si vede la mail viene preformattata su un file html il cui codice lo trovate di seguito:
<body>
<div align="center">
<table align="center" cellpadding="4" cellspacing="4" class="style1">
<tr>
<td align="left" bgcolor="#C90606">
<img alt="" src="http://www.tuodominio.it/Immagini/LogoMail.jpg" /></td>
</tr>
<tr>
<td align="left" style="font-size: small;">
<b><% uNome %></b>
</td>
</tr>
<tr>
<td align="left" style="font-size: small;">
<b><% uAzienda %></b>
</td>
</tr>
<tr>
<td align="left" style="font-size: small;">
<b><% uTelefono %></b>
</td>
</tr>
<tr>
<td align="left" style="font-size: small;">
<% uCorpo %>
</td>
</tr>
<tr>
<td align="center" style="font-size: xx-small; color: #C90606;">
<p>© <% uAnno %> Dati azienda o sito per footer</p>
</td>
</tr>
</table>
</div>
</body>
In questo modo possiamo avere una mail formattata in html che è sicuramente più gradevole e meglio strutturata.
Noterete alla fine del codice vb un redirect ad una pagina di cortesia che serve per ringraziare il visitatore che ci ha inviato la mail, io ho usato la session ma ci sono altri modi per inviare i dati, vedete voi qual'è quello che preferite.
A questo punto il nostro form è perfettamente funzionante, ora potete modificarlo come meglio credete aggiungendo dropdownlist, radiobutton o quello che più vi interessa.