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 значения пустой строки. Ну, вот и все. По-моему, получилось очень просто и быстро. Выбирай вариант по душе. Знай, что PHP всегда работает с одной и той же достаточно большой скоростью. А ASP со второго запуска (типа первый раз - компилится, советую произвести его самостоятельно) начинает рвать так, что никакой PHP и рядом не стоял! Если ты заинтересован написанием Web-приложений на ASP.NET, пиши, задавай вопросы, ибо за этим будущее. |