C#QQ邮箱验证

注意:

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邮箱授权码的生成步骤可以百度参考



 

转载于:https://www.cnblogs.com/YangWenStudent/p/8259779.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈ASP.NET框架

本篇文章更适合具有一定开发经验&#xff0c;一定功底&#xff0c;且对底层代码有所研究的朋友&#xff01;&#xff01;&#xff01; 本篇文章稍微偏原理且底层&#xff0c;有一定难度和且比较晦涩&#xff0c;文章粒度稍微粗些&#xff0c;更细粒度的&#xff0c;会在后续的文…

C语言之冒泡排序

假设要对含有n个数的序列进行升序排列&#xff0c;冒泡排序算法步骤是&#xff1a; 1、从存放序列的数组中的第一个元素开始到最后一个元素&#xff0c;依次对相邻两数进行比较&#xff0c;若前者大后者小&#xff0c;则交换两数的位置&#xff1b; 2、第1趟结束后&#xff0c;…

linux sar 历史负载,查看负载、vmstat、top、sar以及nload命令

使用w查看系统负载1.w命令&#xff0c;查看系统负载&#xff1a;单位时间内使用cpu的活动的进程有多少个[rootweix01 ~]# w #load average 后面三个数字表示1分钟&#xff0c;5分钟&#xff0c;15分钟的负载值&#xff0c;最合适的是逻辑cpu数量与1分钟负载一致21:10:21 up 8 m…

linux系统编程:IO读写过程的原子性操作实验

所谓原子性操作指的是&#xff1a;内核保证某系统调用中的所有步骤&#xff08;操作&#xff09;作为独立操作而一次性加以执行&#xff0c;其间不会被其他进程或线程所中断。 举个通俗点的例子&#xff1a;你和女朋友OOXX的时候&#xff0c;突然来了个电话&#xff0c;势必会打…

Intent.createChooser文件选择

实现点击Button选择文件, 在TextView上显示Uri 1 <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"2 xmlns:tools"http://schemas.android.com/tools"3 android:layout_width"match_parent"4 android…

Git 历险记

Git历险记&#xff08;一&#xff09; 作为分布式版本控制系统的重要代表——Git已经为越来越多的人所认识&#xff0c;它相对于我们熟悉的CVS、SVN甚至同时分布式控制系统的Mercurial&#xff0c;有哪些优势和不足呢。这次InfoQ中文站有幸邀请到《Git Community Book》的译者刘…

怎样用c语言定义高幂整数,位操作运算的奇技淫巧!(附源码)

位运算百度百科如下:程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作位操作的优势位运算是一种底层的运算&#xff0c;往往比我们普通的运算要快上许多许多位运算是最高效而且占用内存最少的算法操作&#xff0c;执行效…

android系统耗电量大待机,安卓手机耗电快有什么解决办法吗 安卓手机待机耗电量大怎么办...

虽然手机发展速度越来越快&#xff0c;技术也越来越高了&#xff0c;电池容量相对之前的900毫安1000毫安&#xff0c;都上升到了2000毫安到5000毫安&#xff0c;但是感觉待机的时间和正常的使用时间&#xff0c;却没有之前那么长了&#xff0c;难道手机电池容量是假的&#xff…

js 中null,undefined区别

首先摘自阮一峰先生的文章&#xff1a; 大多数计算机语言&#xff0c;有且仅有一个表示"无"的值&#xff0c;比如&#xff0c;C语言的NULL&#xff0c;Java语言的null&#xff0c;Python语言的None&#xff0c;Ruby语言的nil。 有点奇怪的是&#xff0c;JavaScript语…

六款值得推荐的Android开源框架简介

六款值得推荐的Android开源框架简介 技术不再多&#xff0c;知道一些常用的、不错的就够了。下面就是最近整理的“性价比”比较高的Android开源框架&#xff0c;应该是相对实用的。 1、volley 项目地址 https://github.com/smanikandan14/Volley-demo JSON&#xff0c;图像等的…

数据库杂谈(一)——数据库基本概念

文章目录1 数据库基本概念1.1数据库和数据库管理系统1.2 数据库系统和文件系统1.3 数据模型1.4 数据库三级模式和两级独立性1.4.1 三级模式1.4.2 二级映像功能1.4.3 数据独立性1.5 数据库发展历史及分类1.6 数据库系统的组成和生命周期1.6.1 三个概念1.6.2 生命周期1.6.3 存储管…

【转】Java删除文件夹和文件

原文网址&#xff1a;http://kxjhlele.iteye.com/blog/323657 以前在javaeye看到过关于Java操作文件的一篇文章&#xff0c;写的很好&#xff0c;但找了半天也没找到&#xff0c;就把找到底几篇文章整理一下&#xff0c;做个总结&#xff0c;算是一个学习备份…… 1&#xff0c…

数据库杂谈(二)——数据模型

2 数据模型 摘要&#xff1a;数据模型&#xff08;Data Model&#xff09;是数据特征的抽象&#xff0c;它从抽象层次上描述了系统的静态特征、动态行为和约束条件&#xff0c;为数据库系统的信息表示与操作提供一个抽象的框架。数据模型所描述的内容有三部分&#xff0c;分别是…

android编译系统apk文件,VS2012中MonoForAndroid打包编译APK文件详细图文教程

本文用于介绍Visual Studio 2012中Xamarin Mono For Android 如何打包编译APK文件&#xff0c;从如何创建Android项目&#xff0c;到如何启动调试&#xff0c;都会逐个配图讲解。1 新建项目2 选择安卓3 选择安卓程序4 随便取名和设置存放路径5 确定1 创建完一个新的项目2 点击“…

判断程序是否已经运行

近段时间&#xff0c;需要写一个小功能&#xff0c;就是需要判断程序是否已经运行。某个程序安装后&#xff0c;也许被多个用户运行。那怎样判断当前用户已经运行了此程序了呢&#xff1f;下面是Insus.NET的做法&#xff0c;就是&#xff1a;《VB.NET WinForm获取运行程序用户名…

浅谈缓存技术在ASP.NET中的运用

本篇文章虽不谈架构&#xff0c;但是Cache又是架构中不可或缺的部分&#xff0c;因此&#xff0c;在讲解Cache的同时&#xff0c;将会提及到部分架构知识&#xff0c;关于架构部分&#xff0c;读者可以不用理解&#xff0c;或者直接跳过&#xff0c; 你只需关心Cache即可&#…

Git快速入门+复习笔记

对于学习编程的同志来说&#xff0c;学习Git是必不可少的一项技术&#xff0c;如果你是第一次观看我的文章&#xff0c;欢迎关注我的频道&#xff0c;我会分享更多有趣的知识。 文章目录1 目标2 概述2.1 开发中的实际场景2.2 版本控制器的方式2.3 工作流程图3 Git安装和常用命令…

Android浏览器速度测试,Android平台浏览器网页加载速度对比评测

参与测试的浏览器手机上网已经渐渐成为人们的一种习惯&#xff0c;无论在等公交时、乘地铁时、吃饭等餐时&#xff0c;很多朋友都习惯掏出手机简单浏览一下微博、人人、新闻网站等页面。移动网络的确为我们带来了莫大的便利&#xff0c;但网速和稳定性却是移动网络的硬伤。针对…

操作系统随笔(一)

你好朋友&#xff0c;当你点进来这份读书笔记时&#xff0c;我相信你不是无意中点进来就是对这一部分饶有兴趣&#xff0c;可惜的是&#xff0c;我也只是个普通的大学生&#xff0c;有时候对知识的见解获取没有屏幕前的你那么有天赋&#xff0c;所以在阅读完这篇文章的同时点个…

codeforces 483B Friends and Presents 解题报告

题目链接&#xff1a;http://codeforces.com/problemset/problem/483/B 题目意思&#xff1a;有两个 friends&#xff0c;需要将 cnt1 个不能整除 x 的数分给第一个friend&#xff0c;cnt2 个不能整除 y 的数分给第二个friend。x 和 y 都是素数来的。要求求出最小的 v&#xff…