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下python web开发环境的搭建
windows下python web开发环境: python2.7,django1.5.1,eclipse4.3.2,pydev3.4.1 一. python环境安装 https://www.pyth ...
- Cocoa框架
Cocoa提供了用于存放数字和字符串的通用数据类型的实际的类.非正式地可以将这些称为值类或基本值类. Cocoa框架本身封装了三个独立的框架:Foundation基本框架.AppKit框架和核心数据框 ...
- 终于说再见了!Google Reader
终于说再见了!Google Reader 投递人 itwriter 发布于 2013-07-02 13:28 评论(5) 有760人阅读 原文链接 [收藏] « » 今天 15:00 左右,Go ...
- hdu 3074 Multiply game(模板级线段树)
离机房关门还有十分钟,这点时间能干些什么?故作沉思地仰望星空,重新捋一下一天的学习进度,或者,砍掉一棵模板级线段树. 纯模板,就是把单点更新,区间求和改为单点更新,区间求积. 1A. #include ...
- php三中页面跳转方式(header、location、refresh) 乐杨俊
反法三:也是用的比较多的
- Java Tips and Best practices to avoid NullPointerException
A NullPointerException in Java application is best way to solve it and that is also key to write rob ...
- jvm工具
jvm工具 知识,经验是基础,数据是依据,工具是运营知识处理数据的手段 数据:运行日志.异常堆栈.GC日志.线程快照.堆转存储快照 JPS:虚拟机进程状况工具 jvm process status t ...
- Semaphore初探
示例一: package com.smbea.demo.semaphore; import java.util.concurrent.ExecutorService; import java.util ...
- WIN10使用管理员权限运行VS2013
学习WCF时出现报错-- 其他信息: HTTP 无法注册 URL http://+:8083/User/.进程不具有此命名空间的访问权限(有关详细信息,请参见 http://go.microsoft. ...
- xtrabackup 开启压缩备份
完整备份innobackupex --defaults-file=/etc/my.cnf --host=localhost --user=bkpuser --password=s3cret /data ...