
代码 1
public class MailSender
2
{
3
public static void Send(string server, string sender, string recipient, string subject,
4
string body, bool isBodyHtml, Encoding encoding, bool isAuthentication, params string[] files)
5
{
6
SmtpClient smtpClient = new SmtpClient(server);
7
MailMessage message = new MailMessage(sender, recipient);
8
message.IsBodyHtml = isBodyHtml;
9
10
message.SubjectEncoding = encoding;
11
message.BodyEncoding = encoding;
12
13
message.Subject = subject;
14
message.Body = body;
15
16
message.Attachments.Clear();
17
if (files != null && files.Length != 0)
18
{
19
for (int i = 0; i < files.Length; ++i)
20
{
21
Attachment attach = new Attachment(files[i]);
22
message.Attachments.Add(attach);
23
}
24
}
25
26
if (isAuthentication == true)
27
{
28
smtpClient.Credentials = new NetworkCredential(SmtpConfig.Create().SmtpSetting.User,
29
SmtpConfig.Create().SmtpSetting.Password);
30
}
31
smtpClient.Send(message);
32
33
34
}
35
36
public static void Send(string recipient, string subject, string body)
37
{
38
Send(SmtpConfig.Create().SmtpSetting.Server, SmtpConfig.Create().SmtpSetting.Sender, recipient, subject, body, true, Encoding.Default, true, null);
39
}
40
41
public static void Send(string Recipient, string Sender, string Subject, string Body)
42
{
43
Send(SmtpConfig.Create().SmtpSetting.Server, Sender, Recipient, Subject, Body, true, Encoding.UTF8, true, null);
44
}
45
46
static readonly string smtpServer = System.Configuration.ConfigurationManager.AppSettings["SmtpServer"];
47
static readonly string userName = System.Configuration.ConfigurationManager.AppSettings["UserName"];
48
static readonly string pwd = System.Configuration.ConfigurationManager.AppSettings["Pwd"];
49
static readonly int smtpPort = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["SmtpPort"]);
50
static readonly string authorName = System.Configuration.ConfigurationManager.AppSettings["AuthorName"];
51
static readonly string to = System.Configuration.ConfigurationManager.AppSettings["To"];
52
53
54
public void Send(string subject, string body)
55
{
56
57
List<string> toList = StringPlus.GetSubStringList(StringPlus.ToDBC(to), ',');
58
OpenSmtp.Mail.Smtp smtp = new OpenSmtp.Mail.Smtp(smtpServer, userName, pwd, smtpPort);
59
foreach (string s in toList)
60
{
61
OpenSmtp.Mail.MailMessage msg = new OpenSmtp.Mail.MailMessage();
62
msg.From = new OpenSmtp.Mail.EmailAddress(userName, authorName);
63
64
msg.AddRecipient(s, OpenSmtp.Mail.AddressType.To);
65
66
//设置邮件正文,并指定格式为 html 格式
67
msg.HtmlBody = body;
68
//设置邮件标题
69
msg.Subject = subject;
70
//指定邮件正文的编码
71
msg.Charset = "gb2312";
72
//发送邮件
73
smtp.SendMail(msg);
74
}
75
}
76
}
77
78
public class SmtpSetting
79
{
80
private string _server;
81
82
public string Server
83
{
84
get
{ return _server; }
85
set
{ _server = value; }
86
}
87
private bool _authentication;
88
89
public bool Authentication
90
{
91
get
{ return _authentication; }
92
set
{ _authentication = value; }
93
}
94
private string _user;
95
96
public string User
97
{
98
get
{ return _user; }
99
set
{ _user = value; }
100
}
101
private string _sender;
102
103
public string Sender
104
{
105
get
{ return _sender; }
106
set
{ _sender = value; }
107
}
108
private string _password;
109
110
public string Password
111
{
112
get
{ return _password; }
113
set
{ _password = value; }
114
}
115
}
116
117
public class SmtpConfig
118
{
119
private static SmtpConfig _smtpConfig;
120
private string ConfigFile
121
{
122
get
123
{
124
string configPath = ConfigurationManager.AppSettings["SmtpConfigPath"];
125
if (string.IsNullOrEmpty(configPath) || configPath.Trim().Length == 0)
126
{
127
configPath = HttpContext.Current.Request.MapPath("/Config/SmtpSetting.config");
128
}
129
else
130
{
131
if (!Path.IsPathRooted(configPath))
132
configPath = HttpContext.Current.Request.MapPath(Path.Combine(configPath, "SmtpSetting.config"));
133
else
134
configPath = Path.Combine(configPath, "SmtpSetting.config");
135
}
136
return configPath;
137
}
138
}
139
public SmtpSetting SmtpSetting
140
{
141
get
142
{
143
XmlDocument doc = new XmlDocument();
144
doc.Load(this.ConfigFile);
145
SmtpSetting smtpSetting = new SmtpSetting();
146
smtpSetting.Server = doc.DocumentElement.SelectSingleNode("Server").InnerText;
147
smtpSetting.Authentication = Convert.ToBoolean(doc.DocumentElement.SelectSingleNode("Authentication").InnerText);
148
smtpSetting.User = doc.DocumentElement.SelectSingleNode("User").InnerText;
149
smtpSetting.Password = doc.DocumentElement.SelectSingleNode("Password").InnerText;
150
smtpSetting.Sender = doc.DocumentElement.SelectSingleNode("Sender").InnerText;
151
152
return smtpSetting;
153
}
154
}
155
private SmtpConfig()
156
{
157
158
}
159
public static SmtpConfig Create()
160
{
161
if (_smtpConfig == null)
162
{
163
_smtpConfig = new SmtpConfig();
164
}
165
return _smtpConfig;
166
}
167
}
public class MailSender2

{3
public static void Send(string server, string sender, string recipient, string subject,4
string body, bool isBodyHtml, Encoding encoding, bool isAuthentication, params string[] files)5

{6
SmtpClient smtpClient = new SmtpClient(server);7
MailMessage message = new MailMessage(sender, recipient);8
message.IsBodyHtml = isBodyHtml;9

10
message.SubjectEncoding = encoding;11
message.BodyEncoding = encoding;12

13
message.Subject = subject;14
message.Body = body;15

16
message.Attachments.Clear();17
if (files != null && files.Length != 0)18

{19
for (int i = 0; i < files.Length; ++i)20

{21
Attachment attach = new Attachment(files[i]);22
message.Attachments.Add(attach);23
}24
}25

26
if (isAuthentication == true)27

{28
smtpClient.Credentials = new NetworkCredential(SmtpConfig.Create().SmtpSetting.User,29
SmtpConfig.Create().SmtpSetting.Password);30
}31
smtpClient.Send(message);32

33

34
}35

36
public static void Send(string recipient, string subject, string body)37

{38
Send(SmtpConfig.Create().SmtpSetting.Server, SmtpConfig.Create().SmtpSetting.Sender, recipient, subject, body, true, Encoding.Default, true, null);39
}40

41
public static void Send(string Recipient, string Sender, string Subject, string Body)42

{43
Send(SmtpConfig.Create().SmtpSetting.Server, Sender, Recipient, Subject, Body, true, Encoding.UTF8, true, null);44
}45

46
static readonly string smtpServer = System.Configuration.ConfigurationManager.AppSettings["SmtpServer"];47
static readonly string userName = System.Configuration.ConfigurationManager.AppSettings["UserName"];48
static readonly string pwd = System.Configuration.ConfigurationManager.AppSettings["Pwd"];49
static readonly int smtpPort = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["SmtpPort"]);50
static readonly string authorName = System.Configuration.ConfigurationManager.AppSettings["AuthorName"];51
static readonly string to = System.Configuration.ConfigurationManager.AppSettings["To"];52

53

54
public void Send(string subject, string body)55

{56

57
List<string> toList = StringPlus.GetSubStringList(StringPlus.ToDBC(to), ',');58
OpenSmtp.Mail.Smtp smtp = new OpenSmtp.Mail.Smtp(smtpServer, userName, pwd, smtpPort);59
foreach (string s in toList)60

{61
OpenSmtp.Mail.MailMessage msg = new OpenSmtp.Mail.MailMessage();62
msg.From = new OpenSmtp.Mail.EmailAddress(userName, authorName);63
64
msg.AddRecipient(s, OpenSmtp.Mail.AddressType.To);65

66
//设置邮件正文,并指定格式为 html 格式67
msg.HtmlBody = body;68
//设置邮件标题69
msg.Subject = subject;70
//指定邮件正文的编码71
msg.Charset = "gb2312";72
//发送邮件73
smtp.SendMail(msg);74
}75
}76
}77

78
public class SmtpSetting79

{80
private string _server;81

82
public string Server83

{84

get
{ return _server; }85

set
{ _server = value; }86
}87
private bool _authentication;88

89
public bool Authentication90

{91

get
{ return _authentication; }92

set
{ _authentication = value; }93
}94
private string _user;95

96
public string User97

{98

get
{ return _user; }99

set
{ _user = value; }100
}101
private string _sender;102

103
public string Sender104

{105

get
{ return _sender; }106

set
{ _sender = value; }107
}108
private string _password;109

110
public string Password111

{112

get
{ return _password; }113

set
{ _password = value; }114
}115
}116

117
public class SmtpConfig118

{119
private static SmtpConfig _smtpConfig;120
private string ConfigFile121

{122
get123

{124
string configPath = ConfigurationManager.AppSettings["SmtpConfigPath"];125
if (string.IsNullOrEmpty(configPath) || configPath.Trim().Length == 0)126

{127
configPath = HttpContext.Current.Request.MapPath("/Config/SmtpSetting.config");128
}129
else130

{131
if (!Path.IsPathRooted(configPath))132
configPath = HttpContext.Current.Request.MapPath(Path.Combine(configPath, "SmtpSetting.config"));133
else134
configPath = Path.Combine(configPath, "SmtpSetting.config");135
}136
return configPath;137
}138
}139
public SmtpSetting SmtpSetting140

{141
get142

{143
XmlDocument doc = new XmlDocument();144
doc.Load(this.ConfigFile);145
SmtpSetting smtpSetting = new SmtpSetting();146
smtpSetting.Server = doc.DocumentElement.SelectSingleNode("Server").InnerText;147
smtpSetting.Authentication = Convert.ToBoolean(doc.DocumentElement.SelectSingleNode("Authentication").InnerText);148
smtpSetting.User = doc.DocumentElement.SelectSingleNode("User").InnerText;149
smtpSetting.Password = doc.DocumentElement.SelectSingleNode("Password").InnerText;150
smtpSetting.Sender = doc.DocumentElement.SelectSingleNode("Sender").InnerText;151

152
return smtpSetting;153
}154
}155
private SmtpConfig()156

{157

158
}159
public static SmtpConfig Create()160

{161
if (_smtpConfig == null)162

{163
_smtpConfig = new SmtpConfig();164
}165
return _smtpConfig;166
}167
}