System.Net.Mail 发送邮件 SMTP协议

System.Net.Mail 发送邮件

    最近几天项目不太紧张,突然对发邮件有点兴趣,随即的研究了一下,本着Apache的开元精神和自身能力的提高以及大家的相互交流,总结了一下经验和大家分享。

 

   说起发送邮件我们首先要对SMTP/Pop3 有一定的了解,当然高手可以跳过。

   简单的说SMTP是用来发送E-Mail邮件所遵循的协议,Pop3是接收E-mail所遵循的协议!

SMTP(Simple Mail Transfer Protocol) 即简单邮件传输协议,他是一组用于由源地址到目的地址传送邮件的规则,简单的说就是:From-->To

的传送规则。由SMTP来控 制信件中转的方式。SMTP属于TCP/IP家族中的一员,它帮助每一台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,我 们就把E-Mail寄到收信人的服务器上了,这个过程只需要几分钟。SMTP服务器则遵循SMTP协议发送的邮件服务器,用来中转你发出的电子邮件。

POP3 (Post Office Protocol) 即邮局协议的第3个版本 它规定怎样将计算机连接到Internet的邮件服务器和下载电子邮件的协议。它是因特网第一个离线邮件协议标准,POP3 允许用户从服务器端得油价下载到本地存储,同时删除保存在服务器端的邮件,而POP3 服务器遵循POP3 协议的接收服务器,又来接收邮件。

 

  做这两段说明,只是想给同我一样的初学者对于SMTP/Pop3一个简单的介绍使大家有一定的了解,那么下面我们切入正题吧。

 在ASP.NET中对于发邮件其实有两个版本。早期的有在System.Web.Mail,而在2.0版本开始就推出了System.Net.Mail 作为发送邮件的类,在此文中,我只对System.Net.Mail 做介绍,以后System.Web.Mail 的一些我也会给大家。

下面就用代码说话吧:

  /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="from">发件人</param>
        /// <param name="to">收件人</param>
        /// <param name="subject">邮件主题</param>
        /// <param name="content">邮件内容</param>
        /// <param name="host">SMTP事物的主机名称</param>
        /// <param name="port">端口号默认25 可以为空</param>
        /// <param name="pass">发件邮箱密码</param>
        /// <param name="isHtml">是否用HTML格式发送</param>
        /// <param name="enableSSL">是否用加密连接</param>
        /// <param name="shiledHead">是否屏蔽发送到垃圾邮件中</param>
        /// <returns>True Or False</returns>
        private bool SendEmail(string from, string pass, string to, string subject, string content, string host, string port, bool isHtml, bool enableSSL, bool shiledHead)
        {
            MailAddress Efrom = new MailAddress(from);
            MailMessage mail = new MailMessage();
            #region//可屏蔽垃圾箱的功能
            if (shiledHead)
            {
                mail.Headers.Add("X-Mailer","Tom");
                mail.Headers.Add("X-Priority", "3");
                mail.Headers.Add("X-MSMail-Priority", "Normal");
                mail.Headers.Add("X-MimeOLE", "Produced By Microsoft MimeOLE V6.00.2900.2869");
                mail.Headers.Add("ReturnReceipt", "1");
            }
            #endregion
            //邮件主题
            mail.Subject = subject;
            //发件人
            mail.From = Efrom;
            //收件人
            mail.To.Add(new MailAddress(to));
            //邮件内容
            mail.Body = content;
            //设置邮件编码
            mail.BodyEncoding = System.Text.Encoding.UTF8;
            //是否用HTML格式显示
            mail.IsBodyHtml = isHtml;
            //邮件的优先级(高|正常|低)
            mail.Priority = MailPriority.High;
            //邮件发送通知
            mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
            //SMTP传输协议
            SmtpClient client = new SmtpClient();
            //设置用于SMTP事物的主机名称,填IP地址也可以
            client.Host = host;
            //设置用于SMTP事物的端口,默认就是25
            if (String.IsNullOrEmpty(port)) client.Port = 25;
            else client.Port = Int32.Parse(port);
            client.UseDefaultCredentials = false;
            client.Credentials = new System.Net.NetworkCredential(from, pass);
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.EnableSsl = enableSSL;
            try
            {
                client.Send(mail);
                return true;
            }
            catch (Exception ex)
            {
              

                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);

                return false;
            }
        }

          注明:只是做 方法的解释,对异常没有做详细的处理,大家在运用的时候需要相应的加上try{}catch(){}块!

          SMTP/POP3 参数链接


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值