B\S备忘录04——接下来进入迂回路线,先发个邮件短信看看

崩了崩了,居然就这么接手权限了,忽然从当初的酱油位变成三号位抗压了,而且对于之前师傅们留下的一些问题。。。请允许我做一个悲伤的表情。。。
说来也巧,从我一进提高班开始,所有带过我的师傅全都在权限系统里,本来以为还差个晓洁师姐就全了,结果一问才知道,她只是去实习了。。。
诶,怎么有一种“权”二代的感觉。
这半个月没少往九期屋里跑,抓着哪个问哪个,接手这两天更是没闲着,一口气跑五趟不费劲。上午偶然的机会跟雅瑾师姐谈了谈注册时候邮箱手机的问题,据说留下的比较大的问题是没办法验证邮箱和手机的真实性。我记得网上应该会有接口提供给我们使用的。
之前瞎敲代码的时候挺带劲,一看视频怎么就看不下去啊。。。所以晚上正好写篇博客,顺便搜集了一些关于邮箱验证短信验证的资料。
邮箱验证的资料据说一找一大把,我只找到了一种,就是用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——接下来进入迂回路线,先发个邮件短信看看】


    推荐阅读