C# SMTP邮件发送 分类: C# 2014-07-13 19:10 333人阅读 评论(1) 收藏
2014-07-13 19:10
375 查看
邮件发送在网站应用程序中经常会用到,包括您现在看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,做了一个客户端Demo,希望对有需要的童鞋有所帮助:
核心代码:
源代码下载
核心代码:
001 | using System; |
002 | using System.Net; |
003 | using System.Net.Mail; |
004 | using System.Text; |
005 |
006 | namespace HC.Email |
007 | { |
008 | /// <summary> |
009 | /// 整站邮件服务类 |
010 | /// </summary> |
011 | public class EmailService |
012 | { |
013 | /// <summary> |
014 | /// 发送邮件 |
015 | /// </summary> |
016 | /// <param name="mailTo">收件人 |
017 | /// <param name="subject">主题 |
018 | /// <param name="body">内容 |
019 | /// <returns></returns> |
020 | public static bool Send( string mailTo, string subject, string body) |
021 | { |
022 | return Send( new [] {mailTo}, null , true , null ); |
023 | } |
024 |
025 | /// <summary> |
026 | /// 发送邮件 |
027 | /// </summary> |
028 | /// <param name="mailTo">收件人 |
029 | /// <param name="subject">主题 |
030 | /// <param name="body">内容 |
031 | /// <returns></returns> |
032 | public static bool Send( string [] string subject, string body) |
033 | { |
034 | return Send(mailTo, null , true , null ); |
035 | } |
036 |
037 | /// <summary> |
038 | /// 发送邮件 |
039 | /// </summary> |
040 | /// <param name="mailTo">收件人 |
041 | /// <param name="subject">主题 |
042 | /// <param name="body">内容 |
043 | /// <param name="attachmentsPath">附件 |
044 | /// <returns></returns> |
045 | public static bool Send( string [] string subject, string body, string [] attachmentsPath) |
046 | { |
047 | return Send(mailTo, null , true , attachmentsPath); |
048 | } |
049 |
050 |
051 | /// <summary> |
052 | /// 发送邮件 |
053 | /// </summary> |
054 | /// <param name="mailTo">收件人 |
055 | /// <param name="mailCcArray">抄送 |
056 | /// <param name="subject">主题 |
057 | /// <param name="body">内容 |
058 | /// <param name="isBodyHtml">是否Html |
059 | /// <param name="attachmentsPath">附件 |
060 | /// <returns></returns> |
061 | public static bool Send( string [] string [] string subject, string body, bool isBodyHtml, |
062 | string [] attachmentsPath) |
063 | { |
064 | try |
065 | { |
066 | var config = ConfigHelper.GetConfig<emailconfig>(); |
067 | if ( string .IsNullOrEmpty(config.Host) || string .IsNullOrEmpty(config.UserName) || |
068 | string .IsNullOrEmpty(config.Port) || string .IsNullOrEmpty(config.Password)) |
069 | { |
070 | //todo:记录日志 |
071 | return false ; |
072 | } |
073 | var @from = new MailAddress(config.MailFrom); //使用指定的邮件地址初始化MailAddress实例 |
074 | var message = new MailMessage(); //初始化MailMessage实例 |
075 | //向收件人地址集合添加邮件地址 |
076 | if (mailTo != null ) |
077 | { |
078 | foreach ( string t in mailTo) |
079 | { |
080 | message.To.Add(t); |
081 | } |
082 | } |
083 |
084 | //向抄送收件人地址集合添加邮件地址 |
085 | if (mailCcArray != null ) |
086 | { |
087 | foreach ( string t in mailCcArray) |
088 | { |
089 | message.CC.Add(t); |
090 | } |
091 | } |
092 | //发件人地址 |
093 | message.From = @from; |
094 |
095 | //电子邮件的标题 |
096 | message.Subject = subject; |
097 |
098 | //电子邮件的主题内容使用的编码 |
099 | message.SubjectEncoding = Encoding.UTF8; |
100 |
101 | //电子邮件正文 |
102 | message.Body = body; |
103 |
104 | //电子邮件正文的编码 |
105 | message.BodyEncoding = Encoding.Default; |
106 | message.Priority = MailPriority.High; |
107 | message.IsBodyHtml = isBodyHtml; |
108 |
109 | //在有附件的情况下添加附件 |
110 | if (attachmentsPath != null && attachmentsPath.Length > 0) |
111 | { |
112 | foreach ( string path in attachmentsPath) |
113 | { |
114 | var attachFile = new Attachment(path); |
115 | message.Attachments.Add(attachFile); |
116 | } |
117 | } |
118 | try |
119 | { |
120 | var smtp = new SmtpClient |
121 | { |
122 | Credentials = new NetworkCredential(config.UserName, config.Password), |
123 | Host = config.Host, |
124 | Port = Convert.ToInt32(config.Port) |
125 | }; |
126 |
127 | //将邮件发送到SMTP邮件服务器 |
128 | smtp.Send(message); |
129 | //todo:记录日志 |
130 | return true ; |
131 | } |
132 | catch (SmtpException ex) |
133 | { |
134 | //todo:记录日志 |
135 | return false ; |
136 | } |
137 | } |
138 | catch (SmtpException ex) |
139 | { |
140 | //todo:记录日志 |
141 | return false ; |
142 | } |
143 | } |
144 | } |
145 | } |
相关文章推荐
- C#写的支持SMTP验证的发送邮件组件
- 用c#写的smtp邮件发送类
- C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP
- C# 使用smtp发送邮件
- *使用C# 创建邮件发送组件(SMTP)
- C#使用smtp发送邮件带附件
- c#发送smtp验证邮件
- C#发送SMTP邮件
- C#smtp服务器发送邮件
- C# 创建邮件发送组件(SMTP)(转)
- C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP
- C#利用smtp服务器发送邮件简介
- 利用SMTP发送邮件(C#)
- C#发送SMTP邮件
- C#发送SMTP邮件
- C#使用163的SMTP服务器发送邮件
- C#利用smtp服务器发送邮件
- C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP
- .Net锦囊-C#,.Net发送邮件三种方法(Localhost,SMTP,SSL-SMTP)
- C#发送邮件(使用Gmail或自己配置的SMTP)