来源:红黑联盟
方法1:cs代码
using System.Net.Mail;
using System.Net;
1 string mailServerName = "smtp.qq.com"; //发送邮件的SMTP服务器
2 string mailFrom = "xxxxxx@qq.com"; //发件人邮箱(用126的邮件服务器,就必须用126邮箱的用户名)
3 string mailTo = "xxxxxx@qq.com"; //收件人邮箱
4 string subject = "用代码方式发送邮件";//邮件主题
5 string body = "这里是邮件正文了"; //邮件正文
6
7 using (MailMessage message = new MailMessage(mailFrom, mailTo, subject, body))
8 {
9 //SmtpClient是发送邮件的主体,这个构造函数是告知SmtpClient发送邮件时使用哪个SMTP服务器
10 SmtpClient mailClient = new SmtpClient(mailServerName);
11 //将认证实例赋予mailClient,也就是访问SMTP服务器的用户名和密码
12 mailClient.Credentials = new NetworkCredential("xxx", "xxxxxx");
13 //最终的发送方法
14 mailClient.Send(message);
15 }
16 Response.Write("发送成功");
方法2:cs代码+web.config
在web.confg中添加如下代码:(本人试过了,把下面这段代码放在<configuration> </configuration>节内部即可。)
1 <system.net>
2 <!--如果是第三方smtp服务器,需要指定userName 和 password,并根据host指定发件人邮件地址from
3 测试发现from值必须是userName值加上指定的smpt服务器才行,而且是必须指定的
4 如果是本机smtp服务器,只需指定defaultCredentials="true"即可-->
5 <mailSettings>
6 <smtp deliveryMethod="Network" from ="xxxxxx@qq.com" >
7 <network host="smtp.qq.com" port="25" userName="xxx" password="xxxxxx" />
8 </smtp>
9 </mailSettings>
10 </system.net>
下面我自己的实验截图

CS代码部分:


1 using (MailMessage message = new MailMessage())
2 {
3 message.To.Add(new MailAddress("xxxxxxx@qq.com")); //收件人邮箱
4 message.Subject = "通过配置文件设置发送邮件";//邮件主题
5 message.Body = "这里是邮件正文了"; //邮件正文
6
7 SmtpClient mailClient = new SmtpClient();
8 mailClient.Send(message);
9 Response.Write("发送成功");
10 }
View Code
方法3:cs代码(函数)
using System.Net.Mail;
using System.Text;
1 public bool SendEmail(string mailTo, string mailSubject, string mailContent)
2 {
3 // 设置发送方的邮件信息,例如使用网易的smtp
4 string smtpServer = "smtp.qq.com"; //SMTP服务器
5 string mailFrom = "XXXXX@qq.com"; //登陆用户名
6 string userPassword = "XXX";//登陆密码
7 // 邮件服务设置 SmtpClient
8 SmtpClient smtpClient = new SmtpClient();
9 smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
10 //指定电子邮件发送方式
11 smtpClient.Host = smtpServer;
12 //指定SMTP服务器
13 smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword);//用户名和密码
14 // 发送邮件设置
15 MailMessage mailMessage = new MailMessage(mailFrom, mailTo); // 发送人和收件人
16 mailMessage.Subject = mailSubject;//主题
17 mailMessage.Body = mailContent;//内容
18 mailMessage.BodyEncoding = Encoding.UTF8;//正文编码
19 mailMessage.IsBodyHtml = true;//设置为HTML格式
20 mailMessage.Priority = MailPriority.Low;//优先级
21 try
22 {
23 smtpClient.Send(mailMessage);// 发送邮件
24 return true;
25 }
26 catch (SmtpException ex)
27 {
28 return false;
29 }
30 }
31
32
33
34 bool result = this.SendEmail("xxxxxxxx@qq.com", "邮件EMAIL主题", "邮件Email内容");
35 if (result)
36 {
37 Response.Write("发送成功");
38 }
39 else
40 {
41 Response.Write("发送失败");
42 }
实验的感觉:
通过SMTP发送邮件,方法简单。但是现如今好多网站的SMTP服务器限制的比较严,可能会导致发送失败。