• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#发送邮箱实现代码

C#发送邮箱实现代码

作者:独钓寒江雪丶 字体:[增加 减小] 来源:互联网 时间:2017-05-28

独钓寒江雪丶 通过本文主要向大家介绍了等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

这里还需要说明的是,发送邮箱需要开通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;
    }
  }
</div>

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

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-28C#递归方法实现无限级分类显示效果实例
  • 2017-05-28c# 共享状态的文件读写实现代码
  • 2017-05-28基于C#实现简单的随机抽奖小程序
  • 2017-05-28C# httpwebrequest访问HTTPS错误处理方法
  • 2017-05-28在Parallel中使用DbSet.Add()发现的一系列多线程问题和解决思路详解
  • 2017-05-28C#读取文本文件到listbox组件的方法
  • 2017-05-28C#中使用委托的3种方式代码示例
  • 2017-05-28C#基于XNA生成随机颜色的方法
  • 2017-05-28理解C#生成验证码的过程
  • 2017-05-28C#编程和Visual Studio使用技巧(下)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#从画刷创建画笔的方法
    • C#自定义事件监听实现方法
    • C# 中的EventHandler实例详解
    • C#中winform实现自动触发鼠标、键盘事件的方法
    • C#文件流进行压缩和解压缩的方法
    • C# 字符串多行显示/文本换行以textbox为例讲解
    • C#定时关闭窗体实例
    • FTPClientHelper辅助类 实现文件上传,目录操作,下载等操作
    • C#实现rabbitmq 延迟队列功能实例代码
    • 一个可携带附加消息的增强消息框MessageBoxEx

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有