|

Mail Sender
Владимир Егоров aka Dr.NET
Спецвыпуск Xakep, номер #030, стр. 030-034-4
<%@Import Namespace="System.Web.Mail"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>Mail Sender</title>
<script language="C#" runat="server">
protected void sendmail(object sender, EventArgs e)
{
try
{
SmtpMail.Send("me@myhost.com",rcptto.Text,subject.Text,text.Text);
lab.Text = "Сообщение отослано.";
rcptto.Text = "";
subject.Text = "";
text.Text = "";
} catch (Exception ex)
{
lab.Text = "Произошла ошибка: "+ex.ToString();
}
}
</script>
</head>
<body>
<form id="Frm" method="post" runat="server">
<asp:Label ID="lab" Runat="server" ForeColor="#ff0000"/>
<table cellpadding="10" cellspacing="0" border="0">
<tr><td>
<asp:Label Runat="server">Кому:</asp:Label></td>
<td><asp:TextBox ID="rcptto" Runat="server" TextMode="SingleLine" Columns="50"/>
</td></tr>
<tr><td>
<asp:Label Runat="server" ID="lab1">Тема:</asp:Label></td>
<td><asp:TextBox ID="subject" Runat="server" TextMode="SingleLine" Columns="50" />
</td></tr>
<tr><td valign="top"><asp:Label Runat="server" ID="lab2">Текст:</asp:Label></td>
<td><asp:TextBox ID="text" Runat="server" TextMode="MultiLine" Columns="50" Rows="10"/>
</td></tr>
<tr><td colspan="2">
<asp:Button ID="submit" Text="отправить" Runat="server" OnClick="sendmail"/>
<input type="reset" value="очистить"></td></tr>
<tr><td colspan="2">
<asp:RequiredFieldValidator runat="server" id="emailv1" controlToValidate="rcptto" Display="Dynamic" style="color:red" ErrorMessage="Необходимо указать получателя сообщения!<br>"/>
<asp:RegularExpressionValidator runat="server" id="emailv2" controlToValidate="rcptto" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Display="Dynamic" style="color:red">
Введенный текст не является адресом электронной почты. Пример адреса:
<code>me@myhost.ru</code>.<br/>
</asp:RegularExpressionValidator>
</td></tr>
</table>
</form>
</body>
</html>
Самое главное
Ну а теперь вернемся к скрипту, помещенному между тегами <script> и </script>. Весь скрипт состоит из одной процедуры, которая выполняется при нажатии на кнопку "отправить". Процедуре передаются два аргумента: "object sender" и "EventArgs e". Как истинный прогер, ты, конечно же, понимаешь, что Sender - объект, в котором возникло событие (в нашем случае - нажатие на кнопку), переменная "e" содержит данные о событии. Далее с помощью процедуры SmtpMail.Send(string from, string to, string subject, string text) отсылаем сообщение адресату (названия параметров говорят за себя), перехватывая при этом исключение (если оно возникнет - пишем сообщение об ошибке). Осталась самая малость - очистить поля для новой отправки, что я и сделал, присвоив их свойству Text значения пустой строки.
Назад на стр. 030-034-3 Содержание Вперед на стр. 030-034-5
|