Professional Windows hosting from ORCS Web
    
An Unrivaled Windows Hosting Experience    
1-888-313-9421  |  webteam@orcsweb.com        
From Our Clients:
"I just want to thank you all for the tremendous work you do...I am grateful I decided to host with ORCS. None of my previous hosts had this level of service. I have had my site with you for almost six months and in that time have not experienced any problems, which was not the case elsewhere. Thank you, thank you, thank you."

Join our community of clients at: 1-888-313-9421

Send a Plain Text and HTML Newsletter using System.Net.Mail
By Steve Schofield
October 17, 2006

This article shows how to send an email that includes a Plain Text and HTML version.  The appropriate version will be displayed by the email client.  This depends on how your email client configured, usually an HTML version will display.   The webpage uses System.Net.Mail built into .NET 2.0 to send the email. Note: This article requires the .NET 2.0 framework

Deployment and Testing

  • Ensure the SMTP Service is installed on the machine. 
  • Create two files named Sendmail.aspx and Sendmail.aspx.vb
  • Deploy to your website. 
  • Open sendmail.aspx in a browser and send a test message.
  • Open your test message in an email client, this should display an HTML version. 
  • Change your email client to only view message in Text format, the text version should display.

Sendmail.aspx Webpage 

 <%@ Page Language="VB" AutoEventWireup="false" CodeFile="sendmail.aspx.vb" ValidateRequest="false" Inherits="_Default" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">

 <title>Send a Plain Text and HTML form</title>

 |</head>
 <body>
   <form id="form1" runat="server">
   <asp:Label ID="label1" runat="server"></asp:Label>
   <table border="1" width="505px">
     <tr>
       <td style="width: 7px">
          From</td>
       <td>
          <asp:TextBox ID="txtFrom" runat="server"
 Width="155px"></asp:TextBox></td>
     </tr>
     <tr>
         <td style="width: 7px">
            To:</td>
     <td>
       <asp:TextBox ID="txtTo" runat="server" 
 Width="157px"></asp:TextBox></td>
     </tr>
     <tr>
         <td style="width: 7px; height: 23px">
            Subject</td>
     <td style="height: 23px">
         <asp:TextBox ID="txtSubject" runat="server" 
 Width="505px"></asp:TextBox></td>
     </tr>
     <tr>
         <td colspan="2">
            TEXT Version Paste or type in text</td>
     </tr>
     <tr>
         <td colspan="2">
         <asp:TextBox ID="txtText" TextMode="MultiLine" Columns="20" Rows="20" runat="server" Width="556px" Height="202px">

This is the Text version

 </asp:TextBox>
        </td>
     </tr>
     <tr>
        <td colspan="2">
           HTML Version Paste or type in HTML formatted text</td>
     </tr>
     <tr>
        <td colspan="2">
        <asp:TextBox ID="txtHTML" TextMode="MultiLine" Columns="20" Rows="20" runat="server" Width="559px" Height="249px">
 <html>
    <body>
 <h2>This is the HTML version</h2>
 </body>
</body>
</asp:TextBox>
     </td>
     </tr>
  </table>
     <asp:Button ID="Button1" runat="server" Text="Button" />
     </form> 
   </body>
   </html>

Sendmail.aspx.vb code behind

Partial Class _Default
  Inherits System.Web.UI.Page

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
   'Create the mail message
    Dim mail As New System.Net.Mail.MailMessage()
    mail.BodyEncoding = Encoding.GetEncoding("iso-8859-1")

   'Set the addresses
    mail.From = New System.Net.Mail.MailAddress(txtFrom.Text.ToString())
    mail.To.Add(txtTo.Text.ToString())

    'Set the content
    mail.Subject = txtSubject.Text.ToString()

    'Create the Plain Text part
    Dim plainView As System.Net.Mail.AlternateView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(txtText.Text.ToString(), Nothing, "text/plain")
    plainView.TransferEncoding = Net.Mime.TransferEncoding.QuotedPrintable

    ‘Create the Html part
    Dim htmlView As System.Net.Mail.AlternateView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(txtHTML.Text.ToString(), Nothing, "text/html")
    htmlView.TransferEncoding = Net.Mime.TransferEncoding.QuotedPrintable

  mail.AlternateViews.Add(plainView)
  mail.AlternateViews.Add(htmlView)

    'Send the message
    Dim smtp As New System.Net.Mail.SmtpClient("mail.iislogs.com") 'specify the mail server address
    smtp.Send(mail)
    label1.Text = "<b>Message Sent:" & System.DateTime.Now() & “</b>”

   End Sub 'MultiPartMime
 End Class

Reference Links:

Steve Schofield is a Senior Internet Support Specialist with ORCS Web, Inc. - a company that provides managed hosting solutions for clients who develop and deploy their applications on Microsoft Windows platforms. Services include shared hosting, dedicated hosting, and webfarm hosting, with specialty in .Net, SQL Server, and architecting highly scalable solutions.

Copyright © 1996-2010 ORCS Web, Inc. All rights reserved.