C#发送手机短信

Posted 二流码农

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#发送手机短信相关的知识,希望对你有一定的参考价值。

  1. 首先在 http://www.webchinese.com.cn/  注册一个账号,新注册的账号会免费提供5条短信发送(如果大量发送的,充值即可);


  2. 获取用户名跟密钥(获取密钥点击修改短信密钥即可)


上面2步完成后,即可进行代码的编辑


/// <summary>

/// </summary>

/// <param name="smsMob">目的手机号码(多个手机号请用半角逗号隔开)</param>

/// <param name="smsText">短信内容,最多支持400个字,普通短信70个字/条,长短信64个字/条计费</param>

/// <returns></returns>

public static string GetPostUrl(string numbers, string Text)        

{

//这里是通过网站发送的用户名和秘钥

 //用户名

string THE_UID = "用户名";

//接口秘钥

string THE_KEY = "密钥";

string postUrl = "http://utf8.api.smschinese.cn/?Uid=" + THE_UID + "&key=" + THE_KEY + "&smsMob=" + numbers + "&smsText=" + Text;

return postUrl;

}


/// <summary>

/// 发送短信,得到返回值

/// </summary>

/// <param name="url"></param>

/// <returns></returns>        

public static string PostSmsInfo(string url)

{

string strRet = null;

if (url == null || url.Trim().ToString() == "")

{

return strRet;

}

string targeturl = url.Trim().ToString();

try

{

HttpWebRequest hr = (HttpWebRequest)WebRequest.Create(targeturl);

hr.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";

hr.Method = "GET";

hr.Timeout = 30 * 60 * 1000;

WebResponse hs = hr.GetResponse();                

Stream sr = hs.GetResponseStream();

StreamReader ser = new StreamReader(sr, Encoding.UTF8);

strRet = ser.ReadToEnd();

}

catch (Exception ex)

{

strRet = "0";

}

int result = int.Parse(strRet);

switch (result)

{

case 0:

strRet = "报错";

break;

case -1:

strRet = "没有该用户账户";

break;

case -2:

strRet = "接口密钥不正确,不是账户登陆密码";

break;

case -21:

strRet = "MD5接口密钥加密不正确";

break;

case -3:

strRet = "短信数量不足";

break;

case -11:

strRet = "该用户被禁用";

break;

case -14:

strRet = "短信内容出现非法字符";

break;

case -4:

strRet = "手机号格式不正确";

break;

case -41:

strRet = "手机号码为空";

break;

case -42:

strRet = "短信内容为空";

break;

case -51:

strRet = "短信签名格式不正确,接口签名格式为:【签名内容】";

break;

case -6:

strRet = "IP限制";

break;

default:

strRet = "发送短信数量:" + result;

break;

}

return strRet;

}


--调用



//发送的内容

string Text = "验证码:6666";

string postUrl = GetPostUrl(numbers, Text);

//根据返回的值判断是否发送成功

string result = PostSmsInfo(postUrl);


------------------------------------------------

发送短信验证,目前绝大多数平台注册账号、登录或者修改密码的时候,都可以进行验证码进行操作;

  1. 登录页面开始计时,如果在一分钟之内没有输入验证码进行登录,则该条在短信验证码记录表的记录作废【数据库可做定时器编辑表数据】;

  2. 超过一分钟没有验证登录,则要求重新发送短信验证;

  3. 在一分钟之内进行登录,根据手机号码查询号短信验证码记录表该手机号非作废数据的创建时间,跟当前时间作比较【假设验证码输入正确】,如果没有超过一分钟,则验证登录成功;

以上是关于C#发送手机短信的主要内容,如果未能解决你的问题,请参考以下文章

C#发送手机短信

c#简单易用的短信发送服务 悠逸企业短信服务

C#批量发送手机短信——云通讯平台

C# 使用阿里云发送短信

C# Ajax 手机发送短信验证码 校验验证码 菜鸟级别实现方法

网易云信,发送验证码短信C#版代码