C#发送邮箱实现代码 (转自CFEI.NET)

发送邮箱需要开通POP3/SMTP服务,否则QQ邮箱,网易邮箱等会报错。

public static class EmailHelper

  {

    ///<summary>

    ///发送邮件

    ///</summary>

    ///<paramname="subject">邮件主题</param>

    ///<paramname="msg">邮件内容</param>

    ///<paramname="filePath">附件地址,如果不添加附件传null或""</param>

    ///<paramname="senderEmail">发送人邮箱地址</param>

    ///<paramname="senderPwd">发送人邮箱密码</param>

    ///<paramname="recipientEmail">接收人邮箱</param>

   public static void SendMail(string subject, string msg, stringfilePath, string senderEmail, string senderPwd, params string[]recipientEmail)

   {

     if (!CheckIsNotEmptyOrNull(subject, msg,senderEmail, senderPwd) || recipientEmail == null ||recipientEmail.Length == 0)

     {

       throw newException("输入信息无效");

     }

     try

     {

       string[] sendFromUser =senderEmail.Split('@');

      //构造一个Email的Message对象

       MailMessage message = newMailMessage();

 

      //确定smtp服务器地址。实例化一个Smtp客户端

       System.Net.Mail.SmtpClientclient = new System.Net.Mail.SmtpClient("smtp." +sendFromUser[1]);

       //构造发件人地址对象

       message.From = newMailAddress(senderEmail, sendFromUser[0],Encoding.UTF8);

 

       //构造收件人地址对象

       foreach (string userName inrecipientEmail)

       {

        message.To.Add(new MailAddress(userName, userName.Split('@')[0],Encoding.UTF8));

       }

       if(!string.IsNullOrEmpty(filePath))

       {

         Attachmentattach = new Attachment(filePath);

        //得到文件的信息

        ContentDisposition disposition =attach.ContentDisposition;

        disposition.CreationDate =System.IO.File.GetCreationTime(filePath);

        disposition.ModificationDate =System.IO.File.GetLastWriteTime(filePath);

        disposition.ReadDate =System.IO.File.GetLastAccessTime(filePath);

        //向邮件添加附件

        message.Attachments.Add(attach);

       }

 

       //添加邮件主题和内容

       message.Subject =subject;

       message.SubjectEncoding =Encoding.UTF8;

       message.Body =msg;

       message.BodyEncoding =Encoding.UTF8;

       //设置邮件的信息

       client.DeliveryMethod =SmtpDeliveryMethod.Network;

       message.BodyEncoding =System.Text.Encoding.UTF8;

       message.IsBodyHtml =false;

 

      //如果服务器支持安全连接,则将安全连接设为true。

      //gmail,qq支持,163不支持

       switch(sendFromUser[1])

       {

         case"gmail.com":

         case"qq.com":

          client.EnableSsl = true;

          break;

        default:

          client.EnableSsl = false;

          break;

       }

       //设置用户名和密码。

       client.UseDefaultCredentials= false;

       //用户登陆信息

       NetworkCredentialmyCredentials = new NetworkCredential(senderEmail,senderPwd);

       client.Credentials =myCredentials;

       //发送邮件

      client.Send(message);

     }

     catch (Exception ex)

     {

       throw (ex);

     }

   }

    ///<summary>

    ///验证所有传入字符串不能为空或null

    ///</summary>

    ///<paramname="ps">参数列表</param>

    ///<returns>都不为空或null返回true,否则返回false</returns>

   public static bool CheckIsNotEmptyOrNull(params string[]ps)

   {

     if (ps != null)

     {

       foreach (string item inps)

       {

         if(string.IsNullOrEmpty(item)) return false;

       }

       return true;

     }

     return false;

   }

  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值