C#实现群发邮件


  
    邮件发送协议为SMTP,然而传统的SMTP协议对于反垃圾邮件做的不是很好,所以在原有的基础上建立了ESMTP(External SMTP)协议,能够进行基于用户账户登录的权限管理。下面以基于ESMTP的用户验证来实现C#群发邮件

    强大的.net类库已经为我们封装好了SMTP协议, 位于System.Net.Mail命名空间之下。

C#实现群发邮件_第1张图片

   主要类:SmtpClient  使用SMTP协议进行发送邮件,

                   MailMessage  封装一个邮件,包括发件人地址,收件人地址,SMTP服务器地址等常用设置。

                  System.Net.NetworkCredential封装用户的用户名和密码,验证凭据类。

                   MailAddress     邮件地址,发件人或者收件人地址

 首先,使用初始化SmtpClient的一些基本设置

smtpClient.Host = "smtp.xx.com";    //设置smtp服务器地址,xx代表服务器提供商
smtpClient.Port = 25;               //smtp服务器端口号
smtpClient.EnableSsl = false;      //是否使用SSL加密
smtpClient.UseDefaultCredentials = false;    
smtpClient.Credentials = new NetworkCredential("用户名","密码");   //发件人账户和密码,即是用户凭证
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;            //传输方式    


再次,构建要发送的邮件内容

mailMessage.From = new MailAddress("发件人地址");
//收件人地址十一mailAddressCollection容器,也为群发邮件提供了便利,不断Add收件人地址就可以了
mailMessage.To.Add(new MailAddress("收件人地址")); 
mailMessage.Subject = "邮件主题"; 
mailMessage.Body = "邮件正文";


最后,发送邮件

// SmtpClient提供了两个发送函数,一个同步发送Send、一个异步发送SendAsync。不过这个异步发送不是有保证,经常发布出去

 smtpClient.Send(mailMessage);

至此,一个基本的发送邮件小工具就完成了。不过要完成群发还是需要考虑很多问题的,譬如发送过快会被Smtp服务器检测到,导致账户被禁止,发送失败等等






你可能感兴趣的:(.net)