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没看,而且。。。快锁门了- -


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值