C# “用户注册“板块开发 发送邮箱验证码
Posted 小马的黄金棺材板
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# “用户注册“板块开发 发送邮箱验证码相关的知识,希望对你有一定的参考价值。
先看效果图:
使用手机或邮箱验证码注册账号大家在也熟悉不过了,下面通过C#语言进行注册的一个小模块开发,代码也是只有几行
网易邮箱授权码:
首先需要一个网易云的邮箱账号,QQ的自行测试,注册好后,
点击“设置”
开启IMAP/SMTP服务 然后保存一下授权码 还有下面的服务器地址
邮箱注册链接(免费)
发送邮箱验证码:
点击“发送验证码”时发送:
MailMessage m = new MailMessage();
//实例化对象
m.From = new MailAddress("dpc6699@126.com");
//发送地址
m.To.Add(textBox6.Text);
//你需要发送给哪个邮箱
m.Subject = "DY圈_注册验证码";
//邮件标题
m.Body = "您正在注册DY圈,您的验证码为:" + i + ",请勿转告他人,感谢您的使用 \\r\\n By:小马哥的棺材板";
//邮件内容
SmtpClient s = new SmtpClient();
//创建发送对象
s.Credentials = new NetworkCredential("dpc6699@126.com", "IWTQJRSUQQHOIXXZ");
//第一个参数是你注册的账号 第2个是授权码
s.Host = "smtp.126.com";
//服务器地址
s.Send(m);
//发送
注释都非常清楚
测试是否可以用:
已发送成功的邮件:
速度还是非常快的基本几秒钟就可以收到了
其他功能:
窗口加载时连接数据库:
Random a = new Random();
label1.Text = a.Next(100000, 900000000).ToString();
label6.Text = b.Next(100000, 900000).ToString();
sql= new SqlConnectionStringBuilder();
sql.UserID = "dpc520";
sql.Password = "00";
sql.DataSource = "0-00";
sql.InitialCatalog = "00";
sql2 = new SqlConnection(sql.ToString());
if (sql2.State == ConnectionState.Closed)
{
sql2.Open();
}
点击发送按钮时开始倒计时并发送邮件:
int i=0;
int m = 60;
bool o =true;
private void label11_Click(object sender, EventArgs e)
{
if (textBox3.Text != label6.Text)
{
MessageBox.Show("验证码错误或未填写");
return;
}
if (sql2.State == ConnectionState.Closed)
{
sql2.Open();
}
SqlCommand c = new SqlCommand("select *from user1 where 绑定邮箱 ='"+textBox6.Text+"'",sql2);
using (SqlDataReader d = c.ExecuteReader())
{
while (d.Read())
{
if (d["绑定邮箱"].ToString().Length >= 1)
{
MessageBox.Show("该邮箱已注册");
label6.Text = b.Next(100000, 900000).ToString();
return;
}
}
}
Random r = new Random();
i = r.Next(100000, 900000);
MailMessage m = new MailMessage();
//实例化对象
m.From = new MailAddress("dpc6699@126.com");
//发送地址
m.To.Add(textBox6.Text);
//你需要发送给哪个邮箱
m.Subject = "DY圈_注册验证码";
//邮件标题
m.Body = "您正在注册DY圈,您的验证码为:" + i + ",请勿转告他人,感谢您的使用 \\r\\n By:小马哥的棺材板";
//邮件内容
SmtpClient s = new SmtpClient();
//创建发送对象
s.Credentials = new NetworkCredential("dpc6699@126.com", "IWTQJRSUQQHOIXXZ");
//第一个参数是你注册的账号 第2个是授权码
s.Host = "smtp.126.com";
//服务器地址
s.Send(m);
//发送
label11.Text = "验 证 码 已 发 送";
label11.ForeColor = Color.Red;
timer1.Enabled = true;
label13.Visible = true;
o = false;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (m == 0)
{
label11.Text = "重 新 获 取";
label11.ForeColor = Color.White;
m = 60;
//label11.Enabled = true;
label13.Visible = false;
timer1.Enabled = false;
o = true;
label6.Text = b.Next(100000, 900000).ToString();
}
label13.Text = m.ToString();
m -= 1;
}
点击头像时打开路径对话框选择头像:
byte bt=0;
byte[] arr;
MemoryStream ms;
private void img_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Multiselect = false;
dialog.Title = "请选择头像";
dialog.Filter = "图片(*.jpg;*.png)|*.jpg;*.png";
if (dialog.ShowDialog() == DialogResult.OK)
{
Bitmap bmp = new Bitmap(dialog.FileName);
// img.SizeMode = PictureBoxSizeMode.Zoom;
ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
if (ms.Length >= 1024 * 1024 * 6)
{
MessageBox.Show("图片大小不能超过5M");
return;
}
img.Image = bmp;
arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(arr, 0, (int)ms.Length);
ms.Close();
ms.Dispose();
bt = 1;
}
}
catch
{
MessageBox.Show("文件不存在,或非图像格式");
}
}
点击注册时过滤没用的字符并提交数据:
Regex a = new Regex(@"[\\S]");
MatchCollection bb = a.Matches(textBox1.Text);
string str = "";
foreach (Match c in bb)
{
str += c.ToString();
}
if (str == "")
{
MessageBox.Show("用户名不符合规范");
label6.Text = b.Next(100000, 900000).ToString();
return;
}
if (textBox2.TextLength < 6) {
MessageBox.Show("密码必须大于六位数");
return;
}
if (textBox3.Text != label6.Text)
{
MessageBox.Show("验证码错误");
label6.Text = b.Next(100000, 900000).ToString();
return;
}
if (textBox2.Text != textBox5.Text)
{
MessageBox.Show("两次密码不一致");
return;
}
if (Convert.ToInt32(textBox7.Text) != i)
{
MessageBox.Show("邮箱验证码错误");
return;
}
MatchCollection bbb = a.Matches(textBox2.Text);
string strr = "";
foreach (Match cc in bbb)
{
strr += cc.ToString();
}
if (strr == "")
{
MessageBox.Show("密码不符合规范");
label6.Text = b.Next(100000, 900000).ToString();
return;
}
char xb;
if (radioButton1.Checked)
{
xb = '男';
}
else {
xb = '女';
}
if (bt ==1)
{
pic = Convert.ToBase64String(arr);
}
else {
MessageBox.Show("请上传头像");
return;
}
MD5 m = MD5.Create();
byte[] md = Encoding.UTF8.GetBytes(strr);
byte[] hf = m.ComputeHash(md);
string g = string.Empty;
for (int i=0;i<=hf.Length-1;i++)
{
g += hf[i].ToString("x");
}
if (sql2.State == ConnectionState.Closed)
{
sql2.Open();
}
SqlCommand 查询账号 = new SqlCommand("select * from user1 where userid = '"+ label1.Text + "'", sql2) ;
SqlDataReader 查询 = 查询账号.ExecuteReader();
while (查询.Read()) {
if ( 查询["userid"].ToString().Length >=1 )
{
MessageBox.Show("账号已存在");
return;
}
}
查询.Close();
查询.Dispose();
string sql3 = "INSERT INTO user1 VALUES('正常','"+textBox6.Text+"','" + label1.Text + "','" + textBox1.Text + "','" + g + "','"+0+"','"+xb+"','"+pic+"')";
SqlCommand sql4 = new SqlCommand(sql3, sql2);
SqlDataReader sql5 = sql4.ExecuteReader();
MessageBox.Show("注册成功:"+label1.Text+" \\r\\n " +"密码:"+strr);
try
{
MessageBox.Show("账号已保存到您的桌面");
// string path = @"C:\\Users\\Administrator\\Desktop\\DY圈账号:"+ label1.Text + "";
File.Create(@"C:\\Users\\Administrator\\Desktop\\" + label1.Text + "");
}
catch
{
}
登录界面 f = new 登录界面(label1.Text);
f.Show();
// MessageBox.Show(a.ToString());
this.Hide();//隐藏现在这个窗口
this.Close();
sql2.Close();
sql5.Close();
sql2.Dispose();
sql5.Dispose();
纯手打,点个赞呗~
以上是关于C# “用户注册“板块开发 发送邮箱验证码的主要内容,如果未能解决你的问题,请参考以下文章