注意:
QQ邮箱的简单邮件传输协议(SMTP)使用了SSL加密,必须启用SSL加密、指定端口。
QQ邮箱POP3/SMTP服务默认是关闭的,需要开启服务(设置=>账户=>开启服务)。
QQ邮箱若有独立密码,需要获取授权码(设置=>账户=>生成授权码)。
//我们随便写一个注册页面,用QQ邮箱验证完成注册
//效果图
//后台代码
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class QQYanZheng : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button2_Click(object sender, EventArgs e)
{
MailMessage msg = new MailMessage(); //生成一个关于邮箱的类
msg.To.Add(TextBox1.Text.Trim()); //文本框里的QQ邮箱 (即注册人的邮箱)
msg.CC.Add(TextBox1.Text.Trim()); //上同
msg.From = new MailAddress("1******55.qq.com", "登录验证"); //第一个是发送验证码的QQ 第二个参数是发送的标题
msg.Subject = "登录验证";
//标题格式为UTF8格式
msg.SubjectEncoding = Encoding.UTF8;
//随机生成6位验证码
ArrayList MyArray = new ArrayList();
Random random = new Random();
string str = null;
int Nums = 6;
while (Nums > 0)
{
int i = random.Next(1, 9);
if (MyArray.Count < 6)
{
MyArray.Add(i);
}
Nums -= 1;
}
for (int j = 0; j <= MyArray.Count - 1; j++)
{
str += MyArray[j].ToString();
}
msg.Body = str; //str为6位随机数
//内容格式为UTF8格式
msg.BodyEncoding = Encoding.UTF8;
SmtpClient client = new SmtpClient();
//SMTP服务器地址
client.Host = "smtp.qq.com";
//SMTP端口,QQ邮箱填写587
client.Port = 587;
//启用SSL加密
client.EnableSsl = true;
client.Credentials = new NetworkCredential("1*****55@qq.com", "fnjnf***"); //第一个参数为发送验证码的QQ邮箱 第二个参数为 发送验证码QQ邮箱的授权码
//发送邮件
client.Send(msg);
}
}
具体QQ邮箱授权码的生成步骤可以百度参考