您的位置:首页 > 编程语言 > C#

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
,
subject,body,
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
[]
mailTo,
string
subject,
string
body)
033
{
034
return
Send(mailTo,
null
,
subject,body,
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
[]
mailTo,
string
subject,
string
body,
string
[]
attachmentsPath)
046
{
047
return
Send(mailTo,
null
,
subject,body,
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
[]
mailTo,
string
[]
mailCcArray,
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
}
源代码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: