ASP.NET Web Pages - The WebMail Helper

The WebMail Helper - One of many useful ASP.NET Web Helpers.

With the WebMail object you can easily send emails from a web page.


The WebMail Helper

The WebMail Helper makes it easy to send an email from a web application using SMTP (Simple Mail transfer Protocol).


Scenario: Email Support

To demonstrate the use of email, we will create an input page for support, let the user submit the page to another page, and send an email about the support problem.


First: Edit Your AppStart Page

If you have built the Demo application in this tutorial, you already have a page called _AppStart.cshtml with the following content:

_AppStart.cshtml

@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true);
}

To initiate the WebMail helper, add the the following WebMail properties to your AppStart page:

_AppStart.cshtml

@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true);
WebMail.SmtpServer = "smtp.example.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "[email protected]";
WebMail.Password = "password-goes-here";
WebMail.From = "[email protected]";

}

Properties explained:

SmtpServer: The name the SMTP server that will be used to send the emails.

SmtpPort: The port the server will use to send SMTP transactions (emails).

EnableSsl: True, if the server should use SSL (Secure Socket Layer) encryption.

UserName: The name of the SMTP email account used to send the email.

Password: The password of the SMTP email account.

From: The email to appear in the from address (often the same as UserName).



Second: Create an Email Input Page

Then create an input page, and name it Email_Input:

Email_Input.cshtml

<!DOCTYPE html>
<html>
<body>
<h1>Request for Assistance</h1>

<form method="post" action="EmailSend.cshtml">
<label>Username:</label>
<input type="text" name="customerEmail" />
<label>Details about the problem:</label>
<textarea name="customerRequest" cols="45" rows="4"></textarea>
<p><input type="submit" value="Submit" /></p>
</form>

</body>
</html>

 

The purpose of the input page is to collect information, then submit the data to a new page that can send the information as an email.


Third: Create An Email Send Page

Then create the page that will be used to send the email, and name it Email_Send:

Email_Send.cshtml

@{ // Read input
var customerEmail = Request["customerEmail"];
var customerRequest = Request["customerRequest"];
try
{
// Send email
WebMail.Send(to:"[email protected]", subject: "Help request from - " + customerEmail, body: customerRequest );
}
catch (Exception ex )
{
<text>@ex</text>
}
}


WebMail Object Reference - Properties

Properties

Description

SmtpServer

The name the SMTP server that will send the emails

SmtpPort

The port the server will use to send SMTP emails

EnableSsl

True, if the server should use SSL encryption

UserName

The name of the SMTP account used to send the email

Password

The password of the SMTP account

From

The email to appear in the from address


WebMail Object Reference - Methods

Method

Description

Send()

Sends an email message to an SMTP server for delivery

The Send() method has the following parameters:

Parameter

Type

Description

to

String

The Email recipients (separated by semicolon)

subject

String

The subject line

body

String

The body of the message

And the following optional parameters:

Parameter

Type

Description

from

String

The email of the sender

cc

String

The cc emails (separated by semicolon)

filesToAttach

Collection

Filenames

isBodyHtml

Boolean

True if the email body is in HTML

additionalHeaders

Collection

Additional headers


Technical Data

Name

Value

Class

System.Web.Helpers.WebMail

Namespace

System.Web.Helpers

Assembly

System.Web.Helpers.dll


Initializing the WebMail Helper

To use the WebMail helper, you need access to an SMTP server. SMTP is the "output" part of email. If you use a web host, you probably already know the name of the SMTP server. If you work in a corporate network, your IT department can give you the name. If you are working at home, you might be able to use your ordinary email provider.

 In order to send an email you will need:

  • The name of the SMTP server
  • The port number (most often 25)
  • An email user name
  • An email password

In the root of your web, create a page (or edit the page ) named _AppStart.cshtml.

Put the following code inside the file:

_AppStart.cshtml

@{
WebMail.SmtpServer = "smtp.example.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "[email protected]";
WebMail.Password = "password";
WebMail.From = "[email protected]"
}

The code above will run each time the web site (application) starts. It feeds your WebMail Object with initial values.

Please substitute:

smtp.example.com with the name the SMTP server that will be used to send the emails.

25 with the port number the server will use to send SMTP transactions (emails).

false with true, if the server should use SSL (Secure Socket Layer) encryption.

[email protected] with the name of the SMTP email account used to send emails.

password with the password of the SMTP email account.

john@example with the email to appear in the from address.

You don't have to initiate the WebMail object in your AppStart file, but you must set these properties before you call the WebMail.Send() method.

 

ASP.NET Web Pages

Login
ADS CODE