日期:2014-05-18 浏览次数:20878 次
//用vs2005,只需要加一个com组件,名称是:Microsoft outlook 11.0 object library using System.Net.Mail; /// <summary> /// 发送邮件的方法 /// </summary> /// <param name="strSender">发件人邮箱地址</param> /// <param name="strPass">发件人邮箱密码</param> /// <param name="Toer">收件人邮箱地址</param> public void MailMessage(string strSender, string strPass, string Toer) { try { MailAddress from = new MailAddress(strSender, "发件人的名称");//发件人邮箱地址 MailAddress to = new MailAddress(Toer, "收件人的名称");//收件人邮箱地址 MailMessage mailMsg = new MailMessage(from, to); mailMsg.Body = "我成功了! "; //所要发送的文本 mailMsg.Subject = "你好";//邮箱标题 SmtpClient client = new SmtpClient("smtp.163.com");//smtp服务器地址 // Include credentials if the server requires them. client.Credentials = CredentialCache.DefaultNetworkCredentials; client.Send(mailMsg); MessageBox.Show("OK"); } catch (System.Exception ex) { MessageBox.Show("Error!"); } }
------解决方案--------------------
//判断是否连通邮件服务商 public static bool SmtpProviderStatus(string pingaddress) { Process p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; string pingrst; p.Start(); p.StandardInput.WriteLine("ping -n 1 " + pingaddress); p.StandardInput.WriteLine("exit"); string strRst = p.StandardOutput.ReadToEnd(); if (strRst.IndexOf("(0% loss)") != -1) pingrst = "连接"; else if (strRst.IndexOf("Destination host unreachable.") != -1) pingrst = "无法到达目的主机"; else if (strRst.IndexOf("Request timed out.") != -1) pingrst = "超时"; else if (strRst.IndexOf("Unknown host") != -1) pingrst = "无法解析主机"; else pingrst = strRst; if (pingrst != "连接") { return false; } else { return true; } } //判断是否已经开启端口 public static bool Smtpport(string websiteaddress) { bool openstatus = false; System.Net.IPAddress ip = System.Net.IPAddress.Parse(websiteaddress); System.Net.IPEndPoint point = new System.Net.IPEndPoint(ip, 25); try { System.Net.Sockets.TcpClient tc = new System.Net.Sockets.TcpClient(); tc.Connect(ip, 25); openstatus = true; } catch { openstatus = false; } return openstatus; } //返回电子邮件地址 public static string[] returnmailaddress(string name) { SqlParameter[] p ={ new SqlParameter("name",name) }; DataTable dt = Oacommand.ExecuteTable("P_returnmailaddress", p); string[] s = new string[dt.Rows.Count]; for (int i = 0; i < dt.Rows.Count; i++) { s[i] = dt.Rows[i][0].ToString(); } return s; } //发送电子邮件 public static void Sendmail(string ReceiveName, string Topic, string Content) { if (ConfigurationManager.AppSettings["AllowsendEmail"].ToString() == "yes") { string smtpaddress = Configura