C#编写的一个发送邮件的简单示例

1。首先引用命名空间using System.Net.Mail;

  代码:

    定义一个简单的发送邮件的方法

        /// <summary>
        /// 
        /// </summary>

        /// <param name="Form">发送人的邮件地址</param>
        /// <param name="tomail">收件人的邮箱地址(可以多个用,隔开)</param>
        /// <param name="UserName">发送人的邮件用户名</param>
        /// <param name="PassWord">发送人的邮件密码</param>
        /// <param name="strTitle">邮件的主题</param>
        /// <param name="strContern">邮件内容</param>
    
        public void SendMail(string From,string tomail, string UserName,string PassWord, string strTitle, string strContern)
        {
            try
            {
                MailMessage message = new MailMessage();//
                message.From = new MailAddress(From);//发送人的地址
                message.To.Add(tomail);//收件人地址

                message.Subject = strTitle;//邮件的主题
                message.Body = strContern;//邮件的内容

                 //发送邮箱服务器(如果是发送人的邮箱是qq邮箱就用下面这个如果是163邮箱就用smtp.163.com)

                SmtpClient smtp = new SmtpClient("smtp.qq.com");
                
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network;//邮件发送的方式

                //UserName用户民如(959639581.qq.com邮箱UserName="959639581")
                smtp.Credentials = new System.Net.NetworkCredential(UserName,PassWord);
                smtp.Send(message);
            }
            catch (Exception e)
            {
                string kk = e.Message;
                throw new Exception("网络问题");
            }

        }
        注意:有些邮箱需要开通服务才能发送成功如当用163邮箱给qq邮箱发送邮件时发送不过去

             可能你的qq邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务没有开启

          需要手动开启

           
                                         邮箱首页 | 设置 - 换肤

                  点击设置-> 账户下面的


                                           邮箱首页 | 设置 - 换肤

                          POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务点击第一个服务开启



     2. 我们可以吧上善面的代码进一步完

       先定义两个方法

        public static int toInt(object v)
        {
            int r = 0;
            try
            {
                r = Convert.ToInt32(v);
            }
            catch
            {
                r = 0;
            }
            return r;
        }
        public static int toInt(string v)
        {
            return toInt((object)v);
        }
      
        public static string toString(object v)
        {
            string r = "";
            try
            {
                r = Convert.ToString(v);
                if (r == null)
                {
                    throw new Exception("转换之后值异常!", null);
                }
            }
            catch
            {
                r = "";
            }
            return r;
        }
      
        public static string toString(int v)
        {
            return toString((object)v);
        }
      
        发送邮件的方法

           /// <summary>
        /// 使用SMTP发送邮件
        /// </summary>
        /// <param name="smtpHost">smtp服务器信息,格式:Host:Port,Port可省略,采用默认端口25如"smtp.163.com:25"</param>
        /// <param name="UserName">smtp服务器登录用户名</param>
        /// <param name="UserPass">smtp服务器登录密码</param>
        /// <param name="MailName">发件人昵称</param>
        /// <param name="MailFrom">发件人</param>
        /// <param name="MailTo">收件人,多个可使用,分隔</param>
        /// <param name="strTitle">邮件主题</param>
        /// <param name="strBody">邮件内容</param>
        /// <param name="isHTML">是否为HTML邮件(有些邮箱不支持html)</param>
        /// <returns>发送状态</returns>
        public static bool sendMail(string smtpHost, string UserName, string UserPass, string MailName,string MailFrom, 

                   string MailTo, string strTitle,         

                         string strBody, bool isHTML)
        {
            System.Net.Mail.MailMessage objMsg = new System.Net.Mail.MailMessage();
            objMsg.From = new System.Net.Mail.MailAddress(MailFrom, MailName);
            objMsg.To.Add(MailTo);
            objMsg.Subject = strTitle;
            objMsg.IsBodyHtml = isHTML;
            objMsg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容得编码格式
            objMsg.Body = strBody;
            string[] smtpHostArr = smtpHost.Split(':');
            string smtpHostIPAdd = String.Copy(smtpHost);
            int smtpHostPort = 25;
            if (smtpHostArr.Length >= 2)
            {
                smtpHostIPAdd = toString(smtpHostArr[0].ToString());
                smtpHostPort = toInt(smtpHostArr[1].ToString());
            }
            System.Net.Mail.SmtpClient objSMTP = new System.Net.Mail.SmtpClient();
            objSMTP.DeliveryMethod = SmtpDeliveryMethod.Network;
            objSMTP.Host = smtpHostIPAdd;
            objSMTP.Port = smtpHostPort;
            objSMTP.Credentials = new System.Net.NetworkCredential(UserName, UserPass);
            try
            {
                objSMTP.Send(objMsg);
                return true;
            }
            catch(Exception e)
            {
                string dd = e.Message;
                return false;
            }
            return false;
        }
    
3.也可以给邮件加附件

     在上面的方法中加一个附件信息的参数Attachment[]attachement

       


 if (attachment.Length>0)
            {
                foreach (Attachment item in attachment)
                {
                    objMsg.Attachments.Add(item);
                }
            }

     如 :

          


                                                     Attachment[] a = new Attachment[] { 
              new Attachment("E:\\d.txt"),
                new Attachment("E:\\f.txt")
            };
        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值