C#实现发送邮件的三种方法

本文实例讲述了C#实现发送邮件的三种方法。分享给大家供大家参考。具体方法分析如下:

一、问题:

最近公司由于一个R&I项目的需要,用户要求在购买产品或出货等一些环节,需要发送邮件提醒或者说每周一让系统自动采集数据发送一封E-mail,因此我也就找来相关资料,写了一个Demo分享给大家,大家共同学习学习。

二、实现代码:

通过.Net FrameWork 2.0下提供的“System.Net.Mail”可以轻松的实现,本文列举了3种途径来发送:
1.通过Localhost;
2.通过普通SMTP;
3.通过SSL的SMTP;
下面一个一个来说:

代码如下:

public void SendMailLocalhost() 

System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); 
msg.To.Add("a@a.com"); 
msg.To.Add("b@b.com"); 
/* msg.To.Add("b@b.com"); 
* msg.To.Add("b@b.com"); 
* msg.To.Add("b@b.com");可以发送给多人 
*/ 
msg.CC.Add(c@c.com); 
/* 
* msg.CC.Add("c@c.com"); 
* msg.CC.Add("c@c.com");可以抄送给多人 
*/ 
msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8); 
/* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/ 
msg.Subject = "这是测试邮件";//邮件标题 
msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码 
msg.Body = "邮件内容";//邮件内容 
msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 
msg.IsBodyHtml = false;//是否是HTML邮件 
msg.Priority = MailPriority.High;//邮件优先级
 
SmtpClient client = new SmtpClient(); 
client.Host = "localhost"; 
object userState = msg; 
try 

client.SendAsync(msg, userState); 
//简单一点儿可以client.Send(msg); 
MessageBox.Show("发送成功"); 

catch (System.Net.Mail.SmtpException ex) 

MessageBox.Show(ex.Message, "发送邮件出错"); 

}
    public void SendMailLocalhost() 

System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); 
msg.To.Add("a@a.com"); 
msg.To.Add("b@b.com"); 
/* msg.To.Add("b@b.com"); 
* msg.To.Add("b@b.com"); 
* msg.To.Add("b@b.com");可以发送给多人 
*/ 
msg.CC.Add(c@c.com); 
/* 
* msg.CC.Add("c@c.com"); 
* msg.CC.Add("c@c.com");可以抄送给多人 
*/ 
msg.From = new MailAddress(master@boys90.com, "dulei", System.Text.Encoding.UTF8); 
/* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/ 
msg.Subject = "这是测试邮件";//邮件标题 
msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码 
msg.Body = "邮件内容";//邮件内容 
msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 
msg.IsBodyHtml = false;//是否是HTML邮件 
msg.Priority = MailPriority.High;//邮件优先级
SmtpClient client = new SmtpClient(); 
client.Host = "localhost"; 
object userState = msg; 
try 

client.SendAsync(msg, userState); 
//简单一点儿可以client.Send(msg); 
MessageBox.Show("发送成功"); 

catch (System.Net.Mail.SmtpException ex) 

MessageBox.Show(ex.Message, "发送邮件出错"); 

}

2.通过普通SMTP C#代码如下

代码如下:

public void SendMailUseZj()   
{   
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();   
msg.To.Add(a@a.com);   
msg.To.Add(b@b.com);   
/*  
* msg.To.Add("b@b.com");  
* msg.To.Add("b@b.com");  
* msg.To.Add("b@b.com");可以发送给多人  
*/   
msg.CC.Add("c@c.com");   
/*  
* msg.CC.Add("c@c.com");  
* msg.CC.Add("c@c.com");可以抄送给多人  
*/   
msg.From = new MailAddress("master@boys90.com", "dulei", System.Text.Encoding.UTF8);   
/* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/   
msg.Subject = "这是测试邮件";//邮件标题   
msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码   
msg.Body = "邮件内容";//邮件内容   
msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码   
msg.IsBodyHtml = false;//是否是HTML邮件   
msg.Priority = MailPriority.High;//邮件优先级   
  
SmtpClient client = new SmtpClient();  
client.Credentials = new System.Net.NetworkCredential("dulei@71info.com", "userpass");   
//在71info.com注册的邮箱和密码   
client.Host = "smtp.71info.com";   
object userState = msg;   
try   
{   
client.SendAsync(msg, userState);   
//简单一点儿可以client.Send(msg);   
MessageBox.Show("发送成功");   
}   
catch (System.Net.Mail.SmtpException ex)   
{   
MessageBox.Show(ex.Message, "发送邮件出错");   
}   
}

3.通过SSL的SMTP


代码如下:

public void SendMailUseGmail()   
{   
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();   
msg.To.Add(a@a.com);   
msg.To.Add(b@b.com);   
/*  
 msg.To.Add("b@b.com");  
* msg.To.Add("b@b.com");  
* msg.To.Add("b@b.com");可以发送给多人  
*/   
msg.CC.Add(c@c.com);   
/*  
* msg.CC.Add("c@c.com");  
* msg.CC.Add("c@c.com");可以抄送给多人  
*/   
msg.From = new MailAddress("boys90.com", "dulei", System.Text.Encoding.UTF8);   
/* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/   
msg.Subject = "这是测试邮件";//邮件标题   
msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码   
msg.Body = "邮件内容";//邮件内容   
msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码   
msg.IsBodyHtml = false;//是否是HTML邮件   
msg.Priority = MailPriority.High;//邮件优先级   
SmtpClient client = new SmtpClient();   
client.Credentials = new System.Net.NetworkCredential("boys90com@gmail.com", "password");   
//上述写你的GMail邮箱和密码   
client.Port = 587;//Gmail使用的端口   
client.Host = "smtp.gmail.com";   
client.EnableSsl = true;//经过ssl加密   
object userState = msg;   
try   
{   
client.SendAsync(msg, userState);   
//简单一点儿可以client.Send(msg);   
MessageBox.Show("发送成功");   
}   
catch (System.Net.Mail.SmtpException ex)   
{   
MessageBox.Show(ex.Message, "发送邮件出错");   
}   
}

通过Gmail来发送邮件,成功率极高,几乎都可以发到,推荐使用,以上的几种方法,我想已经够我们做开发的用了。

希望本文所述对大家的C#程序设计有所帮助。

时间: 2014-11-14

c#使用netmail方式发送邮件示例

复制代码 代码如下: /// <summary>    /// NetMail方式测试通过    /// </summary>    private void TestSend()    {        System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage();        //收件人地址        mm.To.Add(new System.Net.Mail.MailAddress("xx

c#调用qq邮箱smtp发送邮件修改版代码分享

复制代码 代码如下: try            {                MailMessage mm = new MailMessage();                MailAddress Fromma = new MailAddress("xxxx@qq.com");                MailAddress Toma = new MailAddress("MMMMMMM@qq.com", null);              

c# SendMail发送邮件实例代码

复制代码 代码如下: using System;using System.Collections.Generic;using System.Net;using System.Net.Mail;using System.Text; namespace Common{    /// <summary>    /// 基于system.net.mail发送邮件,支持附件    /// </summary>    public class NetSendMail    {        p

C#.NET发送邮件的实例代码

复制代码 代码如下: using System;using System.Collections.Generic;using System.Text;using System.Net.Mail;using System.Net;namespace MyQuery.Utils{    /// <summary>    /// 封装邮件处理    /// by 贾世义 2011-6-3    /// </summary>    public static class MailHelpe

c#异步发送邮件的类

首先要定义一个邮件信息的基类,如下所示: 复制代码 代码如下: /// <summary>/// Base message class used for emails/// </summary>public class Message{#region Constructor/// <summary>/// Constructor/// </summary>public Message(){}#endregion #region Properties/// &

C#中发送邮件代码

始找的代码只能发送无SMTP验证的邮件,但现在很多EMAIL发送时都需要验证,后来查找了下MSDN的帮助,找到了发送验证的代码,贴出来希望对大家有所帮助! 复制代码 代码如下: public static int sendmail(string to, string body,string subject) { try { int nContain = 0; ///添加发件人地址 string from = "你的发送EMAIL"; MailMessage mailMsg = new

c#利用webmail邮件系统发送邮件示例分享

在C#中发送邮件的方式有2种,一种是使用webmail方式进行发送,另外一种就是采用netmail发送的方式,在采用这2种方式发送邮件时,如果采用公用的邮件服务器(如126邮件服务器,Sina的邮件服务器)都是需要授权认证才能够发送,如果是采用Gmail的话,还会有每天发送邮件的数量等限制.这2种方式是经过我测试通过了的代码,只需要将邮件的用户名和密码修改成自己的即可,同时也可以修改邮件服务器,改成自己配置的邮件服务器. 复制代码 代码如下: /// <summary>    /// 发送Em

c#实现服务器性能监控并发送邮件保存日志

客户端代码 复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.ServiceProcess;using System.Text;using System.Threading;using System.Management;using System.Configurat

C#实现发送邮件的方法

本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 #region 发送邮件部分 private static String fromMail = "1111@126.com"; ///邮箱名称 private static String mailPwd = "111111"; ///密码 private static string toMail = "2222@163.com"; ///邮箱服务器 privat

C#编程实现发送邮件的方法(可添加附件)

本文实例讲述了C#编程实现发送邮件的方法.分享给大家供大家参考,具体如下: using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Mail; namespace WindowsFo