zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#实现SMTP邮件发送程序实例

c#实例程序 实现 发送 邮件 SMTP
2023-06-13 09:15:28 时间

通常来说邮件发送功能在网站应用程序中经常会用到,包括大家经常看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,本文展示了一个客户端Demo,希望对有需要的朋友有所帮助。运行效果如下图所示:

核心代码如下:

复制代码代码如下:

usingSystem;
usingSystem.Net;
usingSystem.Net.Mail;
usingSystem.Text;
namespaceHC.Email
{
   ///<summary>
   ///    整站邮件服务类
   ///</summary>
   publicclassEmailService
   {
       ///<summary>
       ///    发送邮件
       ///</summary>
       ///<paramname="mailTo">收件人
       ///<paramname="subject">主题
       ///<paramname="body">内容
       ///<returns></returns>
       publicstaticboolSend(stringmailTo,stringsubject,stringbody)
       {
           returnSend(new[]{mailTo},null,subject,body,true,null);
       }
       ///<summary>
       ///    发送邮件
       ///</summary>
       ///<paramname="mailTo">收件人
       ///<paramname="subject">主题
       ///<paramname="body">内容
       ///<returns></returns>
       publicstaticboolSend(string[]mailTo,stringsubject,stringbody)
       {
           returnSend(mailTo,null,subject,body,true,null);
       }
 
       ///<summary>
       ///    发送邮件
       ///</summary>
       ///<paramname="mailTo">收件人
       ///<paramname="subject">主题
       ///<paramname="body">内容
       ///<paramname="attachmentsPath">附件
       ///<returns></returns>
       publicstaticboolSend(string[]mailTo,stringsubject,stringbody,string[]attachmentsPath)
       {
           returnSend(mailTo,null,subject,body,true,attachmentsPath);
       }
 
       ///<summary>
       ///    发送邮件
       ///</summary>
       ///<paramname="mailTo">收件人
       ///<paramname="mailCcArray">抄送
       ///<paramname="subject">主题
       ///<paramname="body">内容
       ///<paramname="isBodyHtml">是否Html
       ///<paramname="attachmentsPath">附件
       ///<returns></returns>
       publicstaticboolSend(string[]mailTo,string[]mailCcArray,stringsubject,stringbody,boolisBodyHtml,
                               string[]attachmentsPath)
       {
           try
           {
               varconfig=ConfigHelper.GetConfig<emailconfig>();
               if(string.IsNullOrEmpty(config.Host)||string.IsNullOrEmpty(config.UserName)||
                   string.IsNullOrEmpty(config.Port)||string.IsNullOrEmpty(config.Password))
               {
                   //todo:记录日志
                   returnfalse;
               }
               var@from=newMailAddress(config.MailFrom);//使用指定的邮件地址初始化MailAddress实例
               varmessage=newMailMessage();//初始化MailMessage实例
               //向收件人地址集合添加邮件地址
               if(mailTo!=null)
               {
                   foreach(stringtinmailTo)
                   {
                       message.To.Add(t);
                   }
               }
 
               //向抄送收件人地址集合添加邮件地址
               if(mailCcArray!=null)
               {
                   foreach(stringtinmailCcArray)
                   {
                       message.CC.Add(t);
                   }
               }
               //发件人地址
               message.From=@from;
 
               //电子邮件的标题
               message.Subject=subject;
 
               //电子邮件的主题内容使用的编码
               message.SubjectEncoding=Encoding.UTF8;
 
               //电子邮件正文
               message.Body=body;
 
               //电子邮件正文的编码
               message.BodyEncoding=Encoding.Default;
               message.Priority=MailPriority.High;
               message.IsBodyHtml=isBodyHtml;
 
               //在有附件的情况下添加附件
               if(attachmentsPath!=null&&attachmentsPath.Length>0)
               {
                   foreach(stringpathinattachmentsPath)
                   {
                       varattachFile=newAttachment(path);
                       message.Attachments.Add(attachFile);
                   }
               }
               try
               {
                   varsmtp=newSmtpClient
                       {
                           Credentials=newNetworkCredential(config.UserName,config.Password),
                           Host=config.Host,
                           Port=Convert.ToInt32(config.Port)
                       };
 
                   //将邮件发送到SMTP邮件服务器
                   smtp.Send(message);
                   //todo:记录日志
                   returntrue;
               }
               catch(SmtpExceptionex)
               {
                   //todo:记录日志
                   returnfalse;
               }
           }
           catch(SmtpExceptionex)
           {
               //todo:记录日志
               returnfalse;
           }
       }
   }
}

希望本文所述对大家的C#程序设计有所帮助