天刚刚实现发送注册码的功能,只要通过SmtpClient类里的方法和属性就可以实现。
首先引入命名空间:System.NET.Mail。
可以写个方法然后调用,也可以直接写入事件中。
为了养成更好的编码习惯就写个方法好了,代码如下:
private void SendEMail(string strServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody)
{
//strServer是你要用到的网站,比如163邮箱就写smtp.163.com
System.Net.Mail.SmtpClient client = new SmtpClient(strServer);
//strFrom是用来发邮件的地址,strFromPass是该邮箱的密码。
client.Credentials =
new System.Net.NetworkCredential(strFrom, strFromPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
//strto是目标邮箱,strSubject是邮件的主题,strBody是邮件的内容
System.Net.Mail.MailMessage message =
new MailMessage(strFrom, strto, strSubject, strBody);
//设置邮件的编码方式
message.BodyEncoding = System.Text.Encoding.UTF8;
//是否将邮件内容显示为HTML格式,这个是很有用的,特别是传值的时候,有兴趣的可以研究。
message.IsBodyHtml = true;
//发送
client.Send(message);
}
然后在时间中调用就都会了。当然实际用过的都知道,如果想发送一个url连接的话,还是有问题的,因为接受到的其实是以文本显示的。所以在发内容的时候可以这样来写(今天下午刚弄出来,不知道还有没有更好的方法):
string strBody = "<a href='http://www.baidu.com?code=" +a+ "'>www.baidu.com</a>";//a是变量。
所以在上面的方法中,一定要将message.IsBodyHtml的属性设置成true。
注意:对于163邮箱,05年以后注册的不适用这种方法,因为不支持smtp。(我新注册邮箱尝试过。确实不好用)