Click here to Skip to main content
Click here to Skip to main content

Send mail using System.Web.Mail namespace

By , 23 Apr 2013
 

Introduction

The System.Web.Mail namespace provides the classes for sending email in .NET. This tutorial explains how to send emails with attachments.

Class: MailMessage manages the mail message contents.

Properties
  • Attachment specifies the list of the attachments that are transmitted with the message.
  • Bcc is a list of semicolon delimited email addresses that receive a Blind Carbon Copy of the message.
  • Body contains the message text that has to be sent.
  • BodyEncoding is the encoding type of the email message.
  • BodyFormat defines the content type of the body of the message.
  • Cc is a list of semicolon delimited email addresses that receive a Carbon Copy of the message.
  • From is the email address of the sender.
  • Header specifies the custom headers which are transmitted with the Message.
  • Priority is the priority of the email message.
  • Subject is the subject line of the email message.
  • To is the email address of the recipient.

Class: MailAttachments manages the mail attachment.

Class: SmtpMail sends email to the mail server.

The code

Let us see it step by step:

Create a Visual Basic .NET application and drop the following controls and set the properties accordingly.

Control Property
Label Text SMTP Server
TextBox Name txtSMTPServer
Label Text From
TextBox Name txtFrom
Label Text From Display Name
TextBox Name txtFromDisplayName
Label Text Recipient
TextBox txtTo
Label Text Attachment
ListBox Name lstAttachment
Label Text Subject
TextBox Name txtSubject
Label Text Message
TextBox Name txtMessage
Multiline True
Scrollbars Both
Button Text Add attachment
Name BtnAdd
Button Text Remove attachment
Name btnRemove
Button Text Send
Name btnSend
CheckBox Text Send As HTML
Name chkFormat
OpenFileDialog Name OFD
DefaultExt *.*
InitialDirectory c:\
Multiselect True

Now let us see the coding part

Invoke the code window and type the following statement above the class declaration.

Imports System.Web.Mail

Within the Class declaration, in the general section, declare variables required for this project.

' Variable which will send the mail
Dim obj As System.Web.Mail.SmtpMail

'Variable to store the attachments 
Dim Attachment As System.Web.Mail.MailAttachment 

'Variable to create the message to send
Dim Mailmsg As New System.Web.Mail.MailMessage()

Double click on the "Add attachment" button to add the code. Type the following lines:

'Show open dialogue box to select the files to attach

Dim Counter As Integer
OFD.CheckFileExists = True
OFD.Title = "Select file(s) to attach"
OFD.ShowDialog()

For Counter = 0 To UBound(OFD.FileNames)
   lstAttachment.Items.Add(OFD.FileNames(Counter))
Next

Double click on the "Remove attachment" button. Type the following lines:

'Remove the attachments
If lstAttachment.SelectedIndex > -1 Then
    lstAttachment.Items.RemoveAt(lstAttachment.SelectedIndex)
End If

Double click on the "Send" button. Type the following lines:

Dim Counter As Integer

'Validate the data
If txtSMTPServer.Text = "" Then
  MsgBox("Enter the SMTP server info ...!!!", _
           MsgBoxStyle.Information, "Send Email")
  Exit Sub
End If

If txtFrom.Text = "" Then
  MsgBox("Enter the From email address ...!!!", _
           MsgBoxStyle.Information, "Send Email")
  Exit Sub
End If

If txtTo.Text = "" Then
  MsgBox("Enter the Recipient email address ...!!!", _
           MsgBoxStyle.Information, "Send Email")
  Exit Sub
End If

If txtSubject.Text = "" Then
  MsgBox("Enter the Email subject ...!!!", _
           MsgBoxStyle.Information, "Send Email")
  Exit Sub
End If

'Set the properties
'Assign the SMTP server
obj.SmtpServer = txtSMTPServer.Text

'Multiple recepients can be specified using ; as the delimeter
'Address of the recipient
Mailmsg.To = txtTo.Text

'Your From Address
'You can also use a custom header Reply-To for a different replyto address
Mailmsg.From = "\" & txtFromDisplayName.Text & "\ <" & txtFrom.Text & ">"

'Specify the body format
If chkFormat.Checked = True Then
  Mailmsg.BodyFormat = MailFormat.Html 'Send the mail in HTML Format
Else
  Mailmsg.BodyFormat = MailFormat.Text
End If

'If you want you can add a reply to header 
'Mailmsg.Headers.Add("Reply-To", "testmail@mail.com")
'custom headersare added like this
'Mailmsg.Headers.Add("Manoj", "TestHeader")

'Mail Subject
Mailmsg.Subject = txtSubject.Text

'Attach the files one by one
For Counter = 0 To lstAttachment.Items.Count - 1
  Attachment = New MailAttachment(lstAttachment.Items(Counter))
  'Add it to the mail message
  Mailmsg.Attachments.Add(Attachment)
Next

'Mail Body
Mailmsg.Body = txtMessage.Text

'Call the send method to send the mail
obj.Send(Mailmsg)

This application is now ready to run, try it. 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

ManojRajan
Web Developer
United States United States
Member
I'm ManojRajan, Working as a consultant architect in Tennessee. I have more than 8 years of experience in Microsoft Technologies.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralMy vote of 1memberVasudevan Deepak Kumar23 Apr '13 - 4:14 
Generalsending email via .net web site codememberParth201227 Feb '11 - 23:24 
GeneralPlz help! Not able to fix this errormembernimi_201013 Dec '10 - 17:05 
GeneralError of Sending emailmemberMember 75740806 Nov '10 - 2:50 
GeneralUrgent help needed on this article [modified]memberAdeyemi27 Jul '09 - 1:28 
GeneralSending emails without IISmemberMember 37199509 Jun '09 - 21:23 
General2 things need to discussmemberel3ashe230 May '09 - 0:41 
QuestionError while running the codememberBhuvan941123 Apr '09 - 22:44 
AnswerRe: Error while running the codememberel3ashe230 May '09 - 0:42 
QuestionTwo errors found..membervinayweb31 Oct '08 - 2:13 
AnswerRe: Two errors found..memberMember 363240315 Dec '08 - 11:40 
GeneralPocket Pc mailmemberserkan312324 Jun '07 - 22:19 
GeneralImports System.Web.mail is not available in the namespacememberSelvanPPK22 Jun '07 - 23:17 
GeneralRe: Imports System.Web.mail is not available in the namespacememberhevesir29 Jul '07 - 22:25 
GeneralThanks!membermorry809 May '07 - 20:16 
Generalhimemberhebry18 Mar '07 - 23:51 
QuestionFormatting text using MailFormat.Htmlmemberbooboo13alright9 Nov '06 - 7:16 
Generalif there's a solution for CDO.message problem , reply me:)membershery_bn12 Sep '06 - 20:12 
QuestionPlease help me!membertuonginfo2 Sep '06 - 9:50 
Generali want Help...membermadhan_genn29 Jul '06 - 0:58 
QuestionCDO.Messagememberparigi_anantha25 Jul '06 - 0:56 
GeneralNo errors while mailing but, no mails alsomemberronnienk20 May '06 - 21:06 
GeneralProblem using Proxy Servermembertechtrix18 May '06 - 2:59 
GeneralHELP! I can't receive the email if sent to Yahoo.memberardiaz9 Apr '06 - 17:05 
QuestionSMTP Server Authentication : How To?memberMehdiAnis7 Mar '06 - 4:36 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web01 | 2.6.130513.1 | Last Updated 23 Apr 2013
Article Copyright 2004 by ManojRajan
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid