asp.net利用SmtpClient发送邮件
2011-11-01 13:58
686 查看
代码一: using System; using System.Data; using System.Web.UI; using System.Data.OracleClient; using DBUtility; using System.Text.RegularExpressions; using System.Net; using System.Net.Mail; using System.Xml; using System.Net.Mime; using System.Text; using System.Collections.Generic; public partial class Page_ForgetPass : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } //提交邮件 protected void btnMailSub_Click(object sender, EventArgs e) { //判断用户填入的邮箱地址是否在系统里面注册 if (1 > 2)//自行修改一下 { } else { string pass = GetPassByEmail(emailAdd);//通过邮件获取密码 //发送邮件修改密码 try { Dictionary<string, string> mailInfo = ReadXML();//读取配置文件,获取发送人、收件人信息 string fromEmailAdd = mailInfo["from"];//发件人邮箱地址。如:xxxlong@sina.com string fromalias = mailInfo["fromalias"];//发件人显示名字(别名,默认情况下显示发件人邮箱地址)。如:小龙,不写发件人则显示xxxlong@sina.com string fromEmailAddPass = mailInfo["frompass"];//发件人邮箱密码。如:123456——xxxlong@sina.com邮箱登陆密码 string toEmailAdd = emailAdd;//有坚韧邮箱地址。如:892764123@qq.com string subject = mailInfo["subject"];//邮件标题。如:发送邮件的标题 string body = mailInfo["body"];//邮件正文。如:发送邮件正文 string host = mailInfo["host"];//发送邮件服务器(smtp.加上服务器地址)。如sina.com.cn——新浪域名 MailAddress from = new MailAddress(fromEmailAdd);//发送邮件邮箱地址 MailAddress to = new MailAddress(toEmailAdd);//发送邮件邮箱密码 MailMessage message = new MailMessage(); message.To.Add(to); message.From = new MailAddress(fromEmailAdd, fromalias, Encoding.UTF8); string bb = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"; bb += "<html>"; bb += "<head>"; bb += "<title></title>"; bb += "<style type=\"text/css\">"; //bb += "div{ width:100px; height:100px; background-color:Red;}"; bb += "</style>"; bb += "</head>"; bb += "<body>"; bb += "<div>"; bb += "尊敬的用户,您的密码是:" + pass + ",请妥善保管您的密码!【世友租车】"; bb += "</div>"; bb += "</body>"; bb += "</html>"; message.IsBodyHtml = true;//是否是html message.Priority = MailPriority.High;//优先级 message.Subject = subject;//发送邮件标题 message.SubjectEncoding = Encoding.UTF8;//标题编码 message.Body = bb; message.BodyEncoding = Encoding.UTF8;//正文编码 SmtpClient client = new SmtpClient(); client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Port = 25; client.Host = "smtp." + host;//发送邮件服务器地址 client.Credentials = new System.Net.NetworkCredential(fromEmailAdd, fromEmailAddPass);//发送邮件邮箱地址和密码 client.Send(message); string mess = Server.UrlEncode("密码已发送到您指定的邮箱,请注意查收!"); Response.Redirect("BackPass.html?mess=" + mess); } catch (Exception ex) { } } } catch (Exception ex) { } } //读取配置文件,获取邮件发送服务器信息 private Dictionary<string, string> ReadXML() { Dictionary<string, string> hashMail = new Dictionary<string, string>(); try { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Server.MapPath("xml/mail.xml"));//加载xml文件 XmlNode root = xmlDoc.SelectSingleNode("mailinfo");//获取根节点 //遍历所有节点,根节点除外。 //将所有的节点名字和内容以键值对的方式存储。 if (root.HasChildNodes) { foreach (XmlNode node in root.ChildNodes) { hashMail.Add(node.Name, node.InnerText); } } } catch (Exception ex) { } return hashMail; } }
代码二:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Net; using System.Net.Mail; using System.Runtime.Remoting; using System.ComponentModel; using System.Runtime.InteropServices; namespace System.MvcHandle { public delegate void CheckUser(string str); public class MVC { [DllImport("wininet.dll")] private extern static bool InternetGetConnectedState(out int connectionDescription, int reservedValue); private static bool IsConnected() { int I = 0; bool state = InternetGetConnectedState(out I, 0); return state; } public static void Send(string body) { //判断网络是否连接成功 if (IsConnected()) { System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage("trampt.net@gmail.com", "woshiwopengpeng@yahoo.com.cn"); mail.Body = body; mail.Priority = System.Net.Mail.MailPriority.High; mail.Subject = "Send Email"; SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.UseDefaultCredentials = false; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.EnableSsl = true; smtp.Port = 587; smtp.Credentials = new System.Net.NetworkCredential("xxx", "xxxx"); smtp.Timeout = 600000; smtp.Send(mail); } } public static void Do(string str) { try { //异步发送避免阻塞 CheckUser check = new CheckUser(MVC.Send); check.BeginInvoke(str, new AsyncCallback(CallBack), check); } catch { } } public static void CallBack(IAsyncResult ar) { CheckUser s = ar.AsyncState as CheckUser; s.EndInvoke(ar); } } }
相关文章推荐
- asp.net利用SmtpClient发送邮件
- asp.net利用SmtpClient发送邮件
- 利用System.Net.Mail 的SmtpClient发送邮件
- 在ASP.NET中使用SmtpClient发送邮件
- 使用MailMessage和SmtpClient类实现asp.net的邮件发送(有详细注释并已测试通过)
- 利用System.Net.Mail 的SmtpClient发送邮件
- Asp.Net用SmtpClient发送邮件
- ASP.net下调用SmtpClient实现smtp方式邮件发送(带附件)
- asp.net 调用SmtpClient发送邮件(转)
- ASP.net下调用SmtpClient实现smtp方式邮件发送(带附件)
- 在Asp.Net中使用SmtpMail发送邮件的方法:实例
- 利用asp.net自带邮件组件 发送邮件,支持126,163,gmail,qq等邮箱
- asp.net 2.0 无SMTP服务也能发送邮件
- Asp.net 2.0 用SmtpMail 设置发送邮件!!
- 每日学习总结:CSS:Clear属性的用法、重复交易提示框、弹出提示框后页面变形、asp.net调用smtp服务发送邮件问题
- 如何在ASP.NET中使用SmtpMail发送邮件
- asp.net 2.0 SMTP 发送邮件
- 利用SmtpClient发送邮件
- 在asp.net中发送带有smtp验证的邮件
- 利用SmtpClient异步地发送邮件