C#实现SMTP邮件发送程序实例
2023-06-13 09:15:28 时间
通常来说邮件发送功能在网站应用程序中经常会用到,包括大家经常看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,本文展示了一个客户端Demo,希望对有需要的朋友有所帮助。运行效果如下图所示:
核心代码如下:
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#程序设计有所帮助
相关文章
- c# openfiledialog如何使用_visual studio怎么保存源代码
- C#常用 API函数大全[通俗易懂]
- c#数据库的sql参数封装类的编写
- c#Base关键字的使用
- C#下载文件(TransmitFile/WriteFile/流方式)实例介绍
- C#制作鹰眼的详细全过程(带注释)实例代码
- C#绝对路径拼接相对路径的实例代码
- 关于C#5.0CallerMemberNameCallerFilePathCallerLineNumber在.NET4中的使用介绍方法
- C#访问PostGreSQL数据库的方法
- 用C#实现启动另一程序的方法实例
- C#实现抓取网站页面内容的实例方法
- C#中通过API实现的打印类实例代码
- 在C#中创建和读取XML文件的实现方法
- c#SendMail发送邮件实例代码
- C#禁止应用程序多次启动的实例
- C#读写txt文件多种方法实例代码
- C#定时器定时更新的简单实例
- C#中DataTable排序、检索、合并等操作实例
- C#随机生成不重复字符串的两个不错方法
- C#的SQL操作类实例
- C#实现关机重启及注销实例代码
- C#利用Windows自带gdi32.dll实现抓取屏幕功能实例
- C#控制台程序中处理2个关闭事件的代码实例