全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C#发送邮箱实现代码

之前自己从来没有做过发送邮箱的功能,前段时间项目需要,在找了很多帖子之后,终于实现了。

之后有整理了一下,写了一个类。直接给类传递信息,就可以发送了。

这里还需要说明的是,发送邮箱需要开通POP3/SMTP服务,否则QQ邮箱,网易邮箱等会报错。接收的邮箱就不用开通啦,开通方法百度一下就知道啦。

public static class EmailHelper
  {
    /// <summary>
    /// 发送邮件
    /// </summary>
    /// <param name="subject">邮件主题</param>
    /// <param name="msg">邮件内容</param>
    /// <param name="filePath">附件地址,如果不添加附件传null或""</param>
    /// <param name="senderEmail">发送人邮箱地址</param>
    /// <param name="senderPwd">发送人邮箱密码</param>
    /// <param name="recipientEmail">接收人邮箱</param>
    public static void SendMail(string subject, string msg, string filePath, string senderEmail, string senderPwd, params string[] recipientEmail)
    {
      if (!CheckIsNotEmptyOrNull(subject, msg, senderEmail, senderPwd) || recipientEmail == null || recipientEmail.Length == 0)
      {
        throw new Exception("输入信息无效");
      }
      try
      {
        string[] sendFromUser = senderEmail.Split('@');

        //构造一个Email的Message对象
        MailMessage message = new MailMessage();

        //确定smtp服务器地址。实例化一个Smtp客户端
        System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("smtp." + sendFromUser[1]);

        //构造发件人地址对象
        message.From = new MailAddress(senderEmail, sendFromUser[0], Encoding.UTF8);

        //构造收件人地址对象
        foreach (string userName in recipientEmail)
        {
          message.To.Add(new MailAddress(userName, userName.Split('@')[0], Encoding.UTF8));
        }

        if (!string.IsNullOrEmpty(filePath))
        {
          Attachment attach = 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;
        //用户登陆信息
        NetworkCredential myCredentials = new NetworkCredential(senderEmail, senderPwd);
        client.Credentials = myCredentials;
        //发送邮件
        client.Send(message);
      }
      catch (Exception ex)
      {
        throw (ex);
      }
    }

    /// <summary>
    /// 验证所有传入字符串不能为空或null
    /// </summary>
    /// <param name="ps">参数列表</param>
    /// <returns>都不为空或null返回true,否则返回false</returns>
    public static bool CheckIsNotEmptyOrNull(params string[] ps)
    {
      if (ps != null)
      {
        foreach (string item in ps)
        {
          if (string.IsNullOrEmpty(item)) return false;
        }
        return true;
      }
      return false;
    }
  }

直接调用方法,传递需要发送的信息,就可以发送邮箱了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# C#  # 发送邮箱  # C# 邮箱mail 发送类  # c#调用qq邮箱smtp发送邮件修改版代码分享  # 获取外网IP并发送到指定邮箱的vbs代码[已测]  # Java基于JavaMail实现向QQ邮箱发送邮件  # Python实现给qq邮箱发送邮件的方法  # 使用vbs获得外网ip并发送到邮箱里  # VBS获取外网IP地址并发送到指定邮箱的代码  # 在Laravel框架里实现发送邮件实例(邮箱验证)  # java实现163邮箱发送邮件到qq邮箱成功案例  # 发送邮件  # 就可以  # 为空  # 送人  # 的是  # 都不  # 设为  # 从来没有  # 做过  # 找了  # 写了  # 还需要  # 不支持  # 网易  # 报错  # 送了  # 前段时间  # 用户登陆  # 大家多多  # 则将 


相关文章: 招贴海报怎么做,什么是海报招贴?  建站之星客服服务时间及联系方式如何?  如何通过虚拟主机快速完成网站搭建?  如何选择最佳自助建站系统?快速指南解析优劣  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  婚礼视频制作网站,学习*后期制作的网站有哪些?  C#怎么创建控制台应用 C# Console App项目创建方法  已有域名和空间如何搭建网站?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  如何在阿里云虚拟主机上快速搭建个人网站?  网站制作公司排行榜,四大门户网站排名?  香港服务器WordPress建站指南:SEO优化与高效部署策略  如何在IIS服务器上快速部署高效网站?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  学校为何禁止电信移动建设网站?  济南企业网站制作公司,济南社保单位网上缴费步骤?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  贸易公司网站制作流程,出口贸易网站设计怎么做?  如何高效利用亚马逊云主机搭建企业网站?  建站之星代理如何优化在线客服效率?  网站制作新手教程,新手建设一个网站需要注意些什么?  视频网站制作教程,怎么样制作优酷网的小视频?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  如何在腾讯云免费申请建站?  实现虚拟支付需哪些建站技术支撑?  建站之星如何配置系统实现高效建站?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何设置并定期更换建站之星安全管理员密码?  如何用PHP工具快速搭建高效网站?  如何打造高效商业网站?建站目的决定转化率  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  高端云建站费用究竟需要多少预算?  如何在阿里云服务器自主搭建网站?  宁波免费建站如何选择可靠模板与平台?  电商网站制作公司有哪些,1688网是什么意思?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  ,柠檬视频怎样兑换vip?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  如何通过万网虚拟主机快速搭建网站?  深圳网站制作的公司有哪些,dido官方网站?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  如何在IIS7上新建站点并设置安全权限?  简单实现Android验证码  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。