(I updated the code sample based on feedback about C# naming standards and leveraging iDisposable - which I'm sure I'll forget many times until I get comfortable more with C#.)
Below is sample code showing how to send email from ASP.Net 4 (currently in beta as of this posting) using C#. With this code I am assuming that the server already has a local SMTP service installed, so I use "localhost" to relay the email.
Here is the SendMail.aspx page:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SendMail.aspx.cs" Inherits="SendMail" %>
<!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></title>
</head>
<body>
<form id="form1" runat="server">
<div>
Message to:
<asp:TextBox ID="to" runat="server"></asp:TextBox>
<br />
Message from:
<asp:TextBox ID="from" runat="server"></asp:TextBox>
<br />
Subject:
<asp:TextBox ID="subject" runat="server"></asp:TextBox>
<br />
Message Body:
<br />
<asp:TextBox ID="body" runat="server" Height="171px" TextMode="MultiLine"
Width="270px"></asp:TextBox>
<br />
<asp:Button ID="sendMail" runat="server" onclick="SendMail_Click"
Text="Send Email" />
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
Here is the source code of the SendMail.aspx.cs page:
using System;
using System.Web.UI.WebControls;
using System.Net.Mail;
public partial class SendMail : System.Web.UI.Page
{
protected void SendMail_Click(object sender, EventArgs e)
{
using (MailMessage mailItem = new MailMessage(
from.Text, to.Text, subject.Text, body.Text))
{
SmtpClient smtpServer = new SmtpClient("localhost");
try
{
smtpServer.Send(mailItem);
}
catch (Exception ex)
{
Label1.Text = ex.ToString();
}
}
}
}
