发送邮件:简单的写一个小程序,向邮箱发送邮件,这里以发送验证码,并输入邮箱中接收到的验证码,验证是否正确为例
1.创建一个页面,先放一个文本框,用来输入收件人的账号,下面加一个发送按钮,按钮中写发送邮件的事件,然后再放一个文本框,用来输入接收到的验证码,下面加一个验证按钮,在后台比对输入的验证码是否和发送的验证码相符,发送验证码时可用session记录一下发送的验证码,用作验证按钮事件中验证码比对,加一个label,用来显示输入验证码是否正确
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default1.aspx.cs" Inherits="Default1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> 请输入您的邮箱:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /> <asp:Button ID="Button1" runat="server" Text="发送验证码" /><br /><br /> 请输入验证码:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /> <asp:Button ID="Button2" runat="server" Text="验证" /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </div> </form> </body> </html>
2.在后台代码中给发送按钮和验证按钮写事件
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Net; using System.Net.Mail; public partial class Default1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click;//发送按钮的点击事件 Button2.Click += Button2_Click;//验证按钮的点击事件 } //验证按钮的点击事件 void Button2_Click(object sender, EventArgs e) { //判断验证码输入框中输入的文本(去空格)是否和发送的验证码相符,相符Label显示ok,不相符Label显示Error if (TextBox2.Text.Trim() == Session["YZM"].ToString()) { Label1.Text = "OK"; } else { Label1.Text = "Error"; } } //发送按钮的点击事件 void Button1_Click(object sender, EventArgs e) { //创建SMTP调用服务类; //使用QQ邮箱时只需要在邮箱页面设置中找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务下的SSL连接点击进去 //找到发送邮件服务器:smtp.qq.com SmtpClient smtp = new SmtpClient("smtp.sina.cn"); //创建发送人对象 MailAddress aaa = new MailAddress("18560812711@sina.cn"); //创建接收人对象 MailAddress to = new MailAddress(TextBox1.Text); //创建邮件对象 MailMessage mail = new MailMessage(aaa,to); //填充邮件主题 mail.Subject="来自于起航科技用户注册的验证码邮件"; //填充邮件内容 mail.Body="您的验证码为[1234],请在20分钟内填写,此邮件为系统邮件,勿回复!"; Session["YZM"] = "1234";//用session记录一下发送的验证码,作为验证时和输入的验证码比对 //注册证书,验证发送人邮箱和密码 NetworkCredential net = new NetworkCredential("18560812711@sina.cn", "hq1234561"); //将证书关联到服务器对象等待验证 smtp.Credentials = net; //调用发送方法 smtp.Send(mail); } }