崩了崩了,居然就这么接手权限了,忽然从当初的酱油位变成三号位抗压了,而且对于之前师傅们留下的一些问题。。。请允许我做一个悲伤的表情。。。
说来也巧,从我一进提高班开始,所有带过我的师傅全都在权限系统里,本来以为还差个晓洁师姐就全了,结果一问才知道,她只是去实习了。。。
诶,怎么有一种“权”二代的感觉。
这半个月没少往九期屋里跑,抓着哪个问哪个,接手这两天更是没闲着,一口气跑五趟不费劲。上午偶然的机会跟雅瑾师姐谈了谈注册时候邮箱手机的问题,据说留下的比较大的问题是没办法验证邮箱和手机的真实性。我记得网上应该会有接口提供给我们使用的。
之前瞎敲代码的时候挺带劲,一看视频怎么就看不下去啊。。。所以晚上正好写篇博客,顺便搜集了一些关于邮箱验证短信验证的资料。
邮箱验证的资料据说一找一大把,我只找到了一种,就是用System.Net.Mail。
public void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody)
{
System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer);
//创建一个新的Smtp服务器
client.UseDefaultCredentials = false;
//不使用默认邮箱地址
client.Credentials =//先设置发件邮箱地址为空
new System.Net.NetworkCredential(strFrom, strFromPass);
//使用指定的邮箱和密码初始化发件的邮箱
client.DeliveryMethod = SmtpDeliveryMethod.Network;
//指定发送邮件方式为通过网络Smtp服务器发送System.Net.Mail.MailMessage message =//设置发送的邮件为空
new MailMessage(strFrom, strto, strSubject, strBody);
//指定发送邮件的发件人,收件人,主题,内容
message.BodyEncoding = System.Text.Encoding.UTF8;
//使用UTF8编码
message.IsBodyHtml = true;
//发送的内容是否为HTML
client.Send(message);
//发TM的
}
恩,发送的代码差不多就是这样了,置于页面怎么弄还要看具体的情况,差不多就是发送的内容是一个“http://www.gxpt.com/Register.aspx?id=注册ID”,然后在Register.aspx中处理Request["id"],然后修改数据库中的邮箱验证的字段为验证成功。
不过听说Smtp一次发个20封邮件就瘫了,所以还要搞成异步发送。等我升级到Java的权限的时候应该就可以加上了。
下面是短信得接口。短信很坑爹啊,居然是要收费的,而且我注册完了就找不到那个网站了,难道是被封了。。。但是我还是提前把发送短信的demo复制了下来,文档也下了一份。然后我又找到了一个叫云之讯的网站,反正都差不多,哪个都要付款- -
之后我发现这些网站真的很强大,文档里面还有语音验证码,语音通知,视频通话什么的API,至于代码我就不写注释了,没什么可写的,需要翻译的话,我会在修改的,先贴这了。
/********************************************************************************************************/
//数据发送
/********************************************************************************************************/
#region 数据发送
protected void send()
{
string sendurl = "http://api.sms.cn/mt/";
string mobile = "187****6903";
//发送号码
string strContent = "尊敬的用户您好:";
StringBuilder sbTemp = new StringBuilder();
string uid = "rephilo";
string pwd = "******";
string Pass = FormsAuthentication.HashPasswordForStoringInConfigFile(pwd + uid, "MD5");
//密码进行MD5加密
//POST 传值
sbTemp.Append("uid=" + uid + "&pwd=" + Pass + "&mobile=" + mobile + "&content=" + strContent);
byte[] bTemp = System.Text.Encoding.GetEncoding("GBK").GetBytes(sbTemp.ToString());
String postReturn = doPostRequest(sendurl, bTemp);
Response.Write("Post response is: " + postReturn);
//测试返回结果
}//POST方式发送得结果
private static String doPostRequest(string url, byte[] bData)
{
System.Net.HttpWebRequest hwRequest;
System.Net.HttpWebResponse hwResponse;
string strResult = string.Empty;
try
{
hwRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
hwRequest.Timeout = 5000;
hwRequest.Method = "POST";
hwRequest.ContentType = "application/x-www-form-urlencoded";
hwRequest.ContentLength = bData.Length;
System.IO.Stream smWrite = hwRequest.GetRequestStream();
smWrite.Write(bData, 0, bData.Length);
smWrite.Close();
}
catch (System.Exception err)
{
WriteErrLog(err.ToString());
return strResult;
}//get response
try
{
hwResponse = (HttpWebResponse)hwRequest.GetResponse();
StreamReader srReader = new StreamReader(hwResponse.GetResponseStream(), Encoding.ASCII);
strResult = srReader.ReadToEnd();
srReader.Close();
hwResponse.Close();
}
catch (System.Exception err)
{
WriteErrLog(err.ToString());
}
return strResult;
}
private static void WriteErrLog(string strErr)
{
Console.WriteLine(strErr);
System.Diagnostics.Trace.WriteLine(strErr);
}
#endregion
其实不是很难,我们只是在传参数调用。不研究了,明天估计又要忙了,还有JQuery、Ajax没看,而且。。。快锁门了- - 【B\S备忘录04——接下来进入迂回路线,先发个邮件短信看看】