c#简单易用的短信发送服务 悠逸企业短信服务
悠逸企业短信发送服务,是一种比较简单易操作的短信发送服务,使用POST的方式,请求相应地址就可以实现短信发送功能
1 /// <summary>
/// 短信发送服务
/// </summary>
public class ShortMsgHelper
{
/// <summary>
/// 短信服务 账号
/// </summary>
private static string uid = ConfigurationManager.AppSettings["ShortMSGUid"];
/// <summary>
/// 短信服务 密码
/// </summary>
private static string pwd = ConfigurationManager.AppSettings["ShortMSGPwd"];
/// <summary>
/// 客服 手机号字符串
/// </summary>
private static string CustomerServicePhoneList = ConfigurationManager.AppSettings["CustomerServicePhoneList"];
/// <summary>
/// 短信服务 签名(短信内容后面加上 此签名 才能发送成功!形式为:【签名内容】)如果不加,则发送无效
/// </summary>
private static string ShortMSGSignature = ConfigurationManager.AppSettings["ShortMSGSignature"];
/// <summary>
/// 短信服务 开关
/// open:打开 close:关闭
/// </summary>
private static string ShortMSGSwitch = ConfigurationManager.AppSettings["ShortMSGSwitch"]; /// <summary>
/// 发送短信开放方法
/// </summary>
/// <param name="msgContent"></param>
/// <returns></returns>
public static bool Send(string msgContent,List<string> pList)
{
//依据短信服务开关
if (ShortMSGSwitch=="close")
{
return false;
}
List<string> phoneList = new List<string>();
if (pList==null||pList.Count==)
{
phoneList = CustomerServicePhoneList.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
}
else
{
phoneList = pList;
} return SendMobileMsg(uid, pwd, msgContent, phoneList);
}
/// <summary>
/// 短信发送
/// </summary>
/// <param name="uid">悠逸企业短信ID</param>
/// <param name="pwd">悠逸企业短信密码</param>
/// <param name="msgContent">短信内容</param>
/// <param name="destListPhones">手机号列表</param>
/// <returns></returns>
private static bool SendMobileMsg(string uid, string pwd, string msgContent, List<string> destListPhones)
{
try
{
bool result = false;
string strPhones = string.Join(";", destListPhones.ToArray());
strPhones += ";";
var encoding = System.Text.Encoding.GetEncoding("GB2312"); string postData = string.Format("uid={0}&pwd={1}&mobile={2};&msg={3}&dtime=", uid, pwd, strPhones, msgContent + ShortMSGSignature); byte[] data = encoding.GetBytes(postData); // 定义 WebRequest
HttpWebRequest myRequest =
(HttpWebRequest)WebRequest.Create("http://www.smsadmin.cn/smsmarketing/wwwroot/api/post_send/"); myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length; Stream newStream = myRequest.GetRequestStream(); //发送数据
newStream.Write(data, , data.Length);
newStream.Close(); // 得到 Response
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default);
string content = reader.ReadToEnd(); if (content.Substring(, ) == "")
result = true;
else
{
if (content.Substring(, ) == "") //余额不足
{
//"手机短信余额不足";
//TODO
}
else
{
//短信发送失败的其他原因,请参看官方API
}
result = false;
} return result;
}
catch
{
return false;
} }
}
c#简单易用的短信发送服务 悠逸企业短信服务的更多相关文章
- [工具开发] 一信通 Web 短信发送客户端
一.简介 为了协助公司运营部对几家短信平台进行测试,我根据各自的接口文档编写了几个简单的短信发送客户端: 下面是一信通 Web 短信发送客户端,使用 HTTP GET 方法. 二.效果图 1. 首页 ...
- Android短彩信源码解析-短信发送流程(三)
3.短信pdu的压缩与封装 相关文章: ------------------------------------------------------------- 1.短信发送上层逻辑 2.短信发送f ...
- day80:luffy:短信sdk接入&点击获取验证码&注册功能的实现&Celery实现短信发送功能
目录 1.短信sdk接入 2.前端点击获取验证码效果 3.注册后端接口实现 4.注册-前端 5.Celery 6.Celery完成短信发送功能 1.短信sdk接入 1.准备工作 1.下载云通讯相关的文 ...
- Android短彩信源码解析-短信发送流程(二)
转载请注明出处:http://blog.csdn.net/droyon/article/details/11699935 2,短彩信发送framework逻辑 短信在SmsSingleRecipien ...
- 2018阿里云短信发送DEMO接入简单实例
以下更新2018-04-2309:57:54 后续不再更新, 基本类: app/SignatureHelper.php <?php namespace aliyun_mns; /** * 签名助 ...
- 一个简单易上手的短信服务Spring Boot Starter
前言 短信服务在用户注册.登录.找回密码等相关操作中,可以让用户使用更加便捷,越来越多的公司都采用短信验证的方式让用户进行操作,从而提高用户的实用性. Spring Boot Starter 由于 S ...
- 【SSH网上商城项目实战26】完成订单支付后的短信发送功能
转自: https://blog.csdn.net/eson_15/article/details/51475431 上一节我们使用了Java mail完成了给买家发送邮件的功能,还遗留一个功能,就 ...
- C#利用Web Service实现短信发送(转)
通过编程方式实现短信息的发送对很多人来说是一件比较烦杂的事情,目前一般的解决方法是通过计算机和手机的连线,通过可对手机编程的语言编写相关的手机短信息程序来实现,而这种方法对于一般人来说是很难达到的,因 ...
- C# 编写短信发送Window服务
我们做项目过程中,一般都会有发送短信的需求.最常见的就是户注册或者登录时发送短信验证码.不同类型的短信发送,我们都可以放到到一张短信表中,然后通过一个定时的作业去执行短信发送.而定时作业的执行,我们就 ...
随机推荐
- WINDOWS下安装PHP7出现PHP-CGI无法启动
事情经过:下载PHP 7.0 然后运行,发现php-cgi一直挂掉.启动不起来.我直接到文件夹下启动PHP-CGI 启动, 失败,报错提示:缺失vcruntime140.dll.当时心中暗暗一笑,当年 ...
- javascript call()函数
js中的call()函数,简单的说就是用来纠正指正的吧! 调用一个对象的方法,用另一个对象替换当前对象,这样说显得相当的空洞与抽象,实例说明一切! <script type="text ...
- sql 数据库还原脚本 (kill链接+独占
在开发过程中经常会碰到数据库还原,要是sql 连接没完全释放掉,那么还原就会受到阻碍.此脚本就是为了解决这个问题. USE [master] GO /****** Object: StoredProc ...
- 搭建WEB邮件系统,爆强!
Linux+postfix+extmail+dovecot打造基于web页面的邮件系统 原文地址: http://blog.csdn.net/deansrk/article/details/67177 ...
- 一个简单的string类,读书看报系列(一)
对于这个类,写过程序的都知道应该含有的方法是 初始化.销毁.拼接.求长度.清除.判断是否为空等.还有一些操作符重载 一.先看初始化: 可以想到应该有默认构造的的.带有字符串的.带有默认字符的.还有一个 ...
- Hadoop YARN介绍
YARN产生背景 MRv1的局限 YARN是在MRv1基础上演化而来的,它克服了MRv1中的各种局限性.在正式介绍YARN之前,先了解下MRv1的一些局限性,主要有以下几个方面: 扩展性差.在MRv1 ...
- 解决,Incorrect table definition; there can be only one auto column and it must be defined as a key
今天在迁移项目时,操作数据库报错: Incorrect table definition; there can be only one auto column and it must be defin ...
- 怎样在linux或者Unix上检查端口是否在使用
英文原文链接:https://www.cyberciti.biz/faq/unix-linux-check-if-port-is-in-use-command/ Question 1: 怎样在lin ...
- mongo数据库时间存储的问题
题记:项目中要加的内容,可以实现对设备的预定,被某个用户预定后的设备就不能再被其他用户所使用了,用户预定的时候就需要输入预定时间,web前端用到了boostrap的date的一个插件,非常好用,接下来 ...
- [UWP小白日记-15]在UWP手机端实时限制Textbox的输入
说实话重来没想到验证输入是如此的苦逼的一件事情. 网上好多验证都是在输入完成后再验证,我的想法是在输入的时候就限制输入,这样我就不用再写代码来验证了 应为是手机端,所以不用判断其他非法字符,直 ...