来源:红黑联盟
方法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代码部分:
using System.Net.Mail;
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 }
方法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服务器限制的比较严,可能会导致发送失败。