如何正确使用C#短信接口发送招生短信

群发短信对教育机构来讲虽然是个不错的招生工具,但怎么使用决定着生源转化效率,如果是为了单纯的发短信而发短信效率当然不好,那么如何正确使用招生群发短信呢?技巧才是关键!

  教育短信发送较多的就是招生群发短信内容,而运营商对教育行业内容审核一般比较严格,需要短信公司特殊的教育短信通道配合才能完成大批量群发任务.

支持免费对接试用:乐讯通PaaS平台 找好用的短信平台,选择乐讯通,短信群发|短信平台|群发短信软件|群发短信平台|乐讯通PaaS平台icon-default.png?t=N7T8http://yun.loktong.com/login/register/0c61bafb77

 一般招生群发短信效率比较好的用户是这样发的:

 1、过滤无价值的推广内容

  招生短信要明确发送目标和目的,短信内容尽量短小简洁,这也是为什么一条短信建议尽量控制在70字以内的原因,切忌长篇大论,生怕招生信息说不完一样,反而容易引起用户方案或投诉,影响效率不说,得不偿失!

  2、招生群发短信请控制发送频率

  教育企业可以针对招生推广目标制定相应的发送时间表,在短信平台设置发送里可以提前设置发送时间,比如在高考冲刺前推送考考补习课程、小升初推送相关补习质量等.一般建议1天发送1次即可,群发短信时间,建议根据自身客户阅读习惯来自行安排.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace WinApiDemo
{class Program{private const string url = "http://www.lokapi.cn/smsUTF8.aspx";private const string urlReply = "http://www.lokapi.cn/callApi.aspx";private const string urlStatus = "http://www.lokapi.cn/statusApi.aspx";private const string urlBalance = "http://www.lokapi.cn/smsUTF8.aspx";private const string urlKeyword = "http://www.lokapi.cn/checkWord.aspx";private const string rece = "json";private const string username = "";private const string password = "";private const string encode = "utf-8";//tokenprivate const string tokenYZM = "";//验证码private const string tokenTZ = "";//通知private const string tokenYX = "";//营销private const string tokenMMS = "";//彩信private const string tokenVideo = "";//视频private const string tokenSX = "";//闪信private const string tokenVoice = "";//语音private const string tokenInter = "";//国际//模板IDprivate const string templateid = "";//参数private const string param = "17733861234|2541";private const string mobile = "";private const string title = "祝福短信";//彩信标题static void Main(string[] args){string result = "";string sign = "";string passwordMd5 = Common.Md5Hash(password);string ticks = ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000).ToString();Encoding encoding = Encoding.GetEncoding(encode);StringBuilder sb = new StringBuilder();#region 文字短信sb.AppendFormat("action=sendtemplate&username={0}&password={1}&token={2}&timestamp={3}", username, passwordMd5, tokenYZM, ticks);sign = Common.Md5Hash(sb.ToString());sb.AppendFormat("&sign={0}&rece={1}", sign, rece);sb.AppendFormat("&templateid={0}&param={1}", templateid, param);result = Common.HttpPost(url, sb.ToString(), encoding);Console.WriteLine(result);#endregion#region 彩信sb.Clear();sb.AppendFormat("action=sendimagetext&username={0}&password={1}&token={2}&timestamp={3}", username, passwordMd5, tokenYZM, ticks);sign = Common.Md5Hash(sb.ToString());sb.AppendFormat("&sign={0}&rece={1}", sign, rece);sb.AppendFormat("&mobile={0}&title={1}", mobile, title);//彩信发送主体//文字string content = "祝你生日快乐";Encoding encodingGB = Encoding.GetEncoding("gb2312");byte[] txt_bytes = encoding.GetBytes(content);string txt = Convert.ToBase64String(txt_bytes);//图片string path = @"D:\我的文档\Pictures\11.jpg";string extension = "jpg";//图片后缀byte[] bytes = File.ReadAllBytes(path);string imgContent = System.Convert.ToBase64String(bytes);string message = string.Format("txt|{0},{1}|{2};", txt, extension, imgContent);message = message.Replace("%", "%25");message = message.Replace("&", "%26");message = message.Replace("+", "%2B");sb.AppendFormat("&message={0}", message);result = Common.HttpPost(url, sb.ToString(), encoding);Console.WriteLine(result);#endregion#region 视频sb.Clear();sb.AppendFormat("action=sendvideo&username={0}&password={1}&token={2}&timestamp={3}", username, passwordMd5, tokenYZM, ticks);sign = Common.Md5Hash(sb.ToString());sb.AppendFormat("&sign={0}&rece={1}", sign, rece);sb.AppendFormat("&mobile={0}&templateid={1}", mobile, templateid);result = Common.HttpPost(url, sb.ToString(), encoding);Console.WriteLine(result);#endregion#region 闪信sb.Clear();sb.AppendFormat("action=sendshanxin&username={0}&password={1}&token={2}&timestamp={3}", username, passwordMd5, tokenYZM, ticks);sign = Common.Md5Hash(sb.ToString());sb.AppendFormat("&sign={0}&rece={1}", sign, rece);sb.AppendFormat("&templateid={0}&param={1}", templateid, param);result = Common.HttpPost(url, sb.ToString(), encoding);Console.WriteLine(result);#endregion#region 语音sb.Clear();sb.AppendFormat("action=sendvoice&username={0}&password={1}&token={2}&timestamp={3}", username, passwordMd5, tokenYZM, ticks);sign = Common.Md5Hash(sb.ToString());sb.AppendFormat("&sign={0}&rece={1}", sign, rece);sb.AppendFormat("&templateid={0}&param={1}", templateid, param);result = Common.HttpPost(url, sb.ToString(), encoding);Console.WriteLine(result);#endregion#region 国际sb.Clear();sb.AppendFormat("action=sendinternation&username={0}&password={1}&token={2}&timestamp={3}", username, passwordMd5, tokenYZM, ticks);sign = Common.Md5Hash(sb.ToString());sb.AppendFormat("&sign={0}&rece={1}", sign, rece);sb.AppendFormat("&templateid={0}&param={1}", templateid, param);result = Common.HttpPost(url, sb.ToString(), encoding);Console.WriteLine(result);#endregion#region 文字回复报告sb.Clear();sb.AppendFormat("action=sms&username={0}&password={1}&timestamp={2}", username, passwordMd5, ticks);sign = Common.Md5Hash(sb.ToString());sb.AppendFormat("&sign={0}&rece={1}", sign, rece);result = Common.HttpPost(urlReply, sb.ToString(), encoding);Console.WriteLine(result);#endregion#region 状态报告sb.Clear();//action根据API文档选择合适产品的actionsb.AppendFormat("action=sms&username={0}&password={1}&timestamp={2}", username, passwordMd5, ticks);sign = Common.Md5Hash(sb.ToString());sb.AppendFormat("&sign={0}&rece={1}", sign, rece);result = Common.HttpPost(urlStatus, sb.ToString(), encoding);Console.WriteLine(result);#endregion#region 余额查询sb.Clear();sb.AppendFormat("action=overage&username={0}&password={1}&token={2}&timestamp={3}", username, passwordMd5, tokenTZ, ticks);sign = Common.Md5Hash(sb.ToString());sb.AppendFormat("&sign={0}&rece={1}", sign, rece);result = Common.HttpPost(urlBalance, sb.ToString(), encoding);Console.WriteLine(result);#endregion#region 屏蔽词检测sb.Clear();sb.AppendFormat("username={0}&password={1}&timestamp={2}", username, passwordMd5, ticks);sign = Common.Md5Hash(sb.ToString());sb.AppendFormat("&sign={0}&rece={1}&message={2}", sign, rece, "您的验证码是5412");result = Common.HttpPost(urlKeyword, sb.ToString(), encoding);Console.WriteLine(result);#endregionConsole.ReadKey();}}
}

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;namespace WinApiDemo
{public class Common{public static string HttpPost(string Url, string Body, Encoding encode){string ResponseContent = "";try{HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(Url);httpWebRequest.ContentType = "application/x-www-form-urlencoded";httpWebRequest.Method = "POST";httpWebRequest.Timeout = 600000; //setInstanceFollowRedirectsbyte[] btBodys = encode.GetBytes(Body);httpWebRequest.ContentLength = btBodys.Length;Stream reqStream = httpWebRequest.GetRequestStream();reqStream.Write(btBodys, 0, btBodys.Length);HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();Stream resStream = httpWebResponse.GetResponseStream();StreamReader streamReader = new StreamReader(resStream, encode);ResponseContent = streamReader.ReadToEnd();streamReader.Close();resStream.Close();reqStream.Close();streamReader.Dispose();resStream.Dispose();reqStream.Dispose();httpWebResponse.Close();httpWebResponse.Dispose();httpWebRequest.Abort();}catch (Exception ex){return ex.ToString();}return ResponseContent;}public static string Md5Hash(string input){MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));StringBuilder sBuilder = new StringBuilder();for (int i = 0; i < data.Length; i++){sBuilder.Append(data[i].ToString("x2"));}return sBuilder.ToString().ToUpper();}}
}

 3、挑选比较感兴趣的话题

  招生也不一定非得发送招生内容,招生群发短信现在比较流行的是采用热点话题,委婉的引入课程营销,”露骨式”的营销方式在遍地营销短信的时代已经达不到吸引用户的目的了,所以只有充足的了解师生需求,配合话题热点才能吸引更多流量.

  总结:使用招生群发短信技巧只是其一,稳定的平台通道是硬件基础,二者相辅相成才能取得期望的生源转化效率.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/860341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新媒体矩阵系统是什么?怎么搭建矩阵系统?

目录 前言&#xff1a; 一、新媒体矩阵分别是什么&#xff1f; 1、横向矩阵 2、 纵向矩阵 二、新媒体矩阵的作用&#xff1f; 1、多元化发展&#xff0c;吸引目标 2、多平台协同&#xff0c;放大宣传效果 3、多平台运营&#xff0c;分散风险 三、怎么做矩阵系统&…

【摄像头标定】双目摄像头标定及矫正-opencv(python)

双目摄像头标定及矫正 棋盘格标定板标定矫正 棋盘格标定板 本文使用棋盘格标定板&#xff0c;可以到这篇博客中下载&#xff1a;https://blog.csdn.net/qq_39330520/article/details/107864568 标定 要进行标定首先需要双目拍的棋盘格图片&#xff0c;20张左右&#xff0c;…

企业微信内嵌H5项目接入聊天功能

产品需求是,在列表中把符合条件的列表接入聊天功能,以下是详细步骤: 1.引入企业微信 <script src"https://res.wx.qq.com/wwopen/js/jsapi/jweixin-1.0.0.js"></script> 2.获取wx签名(必须要) /*** 获取wx签名**/ export function getWxJsApi(data) {r…

RKmedia进行vi-vo模块

一、简介 分析一下rkmedia的代码&#xff0c;给自己加深一下印象 二、代码 2.1 头文件以及定义 首先包含了必要的头文件&#xff0c;以及rkmedia底层的库 static bool quit 是定义了布尔类型的变量来表示这个程序的运行状态 false表示没停止 true表示停止 sigterm_handle…

pdf压缩,pdf压缩在线,pdf文件太大怎么变小

在数字化时代&#xff0c;PDF文档因其跨平台、保持原样、易于阅读和打印等特点&#xff0c;成为了我们日常工作和生活中不可或缺的一部分。然而&#xff0c;随着PDF文件的不断累积&#xff0c;存储空间逐渐变得紧张&#xff0c;特别是在处理大量大型PDF文件时&#xff0c;如何有…

【Python】在 VS Code 里面绘制动图不显示动画的解决办法

在 VS Code 中&#xff0c;可以通过以下步骤来确保动画正确显示&#xff1a; 配置 VS Code 使用适当的绘图后端&#xff1a; VS Code 中使用 matplotlib 的动画功能&#xff0c;需要配置适当的绘图后端。推荐使用 TkAgg 或者 Qt5Agg 后端。你可以在代码中显式指定&#xff1a;…

若依前后端分离项目整合shardingjdbc分表(详细,分片字段订单id)

文章目录 1. 引入Maven依赖2.引入配置文件3.兼容之前的数据库源,使用现在的sharding数据库源&#xff08;shardingjdbc默认的数据源&#xff09;&#xff0c;但是配置好文件之后是没有生效的&#xff0c;需要加配置文件覆盖4. 检测是否成功5. 如何使用&#xff0c;在需要使用的…

qt开发-14_QListwidget 仿qq好友列表制作

QListWidget 继承 QListView。QListWidget 类提供了一个基于项的列表小部件。QListWidg et 是一个便捷的类&#xff0c;它提供了一个类似于 QListView&#xff08;下一小节将讲到&#xff09;提供的列表视图&#xff0c;但 是提供了一个用于添加和删除项目的基于项目的经典接口…

第10章 启动过程组 (启动过程组的重点工作)

第10章 启动过程组 10.3启动过程组的重点工作&#xff0c;在第三版教材第362~364页&#xff1b; 文字图片音频方式 第一个知识点&#xff1a;项目启动会议 1、作用 标志着对项目经理责权的定义结果的正式公布&#xff0c;通常由项目经理负责组织和召开。2、目的 使项目各…

数据库常用操作命令

数据库基本操作 #查看数据库 show databases#创建数据库 create database db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;#使用数据库 use db;用户操作 #创建用户 create user 用户名IP地址 identified by 密码;#删除用户 drop user 用户名IP地址;#修改用户 rename user …

分享:Wordpress插件-AI Image Pro v2.6.0中文版语言包

AI Image Pro是一个wordpress插件,可将您的 WordPress 网站直接与最佳图像生成 A模型(DALL.E和稳定扩散)集成&#xff0c;并允许您利用 AI 生成图像、编辑(内画)图像和创建图像变体。最重要的是&#xff0c;它配备了许多一键式滤镜和许多微调选项,您可以使用它们来增强和创建令…

【算法介绍】开集识别算法 OpenMax

OpenMax算法简介 OpenMax是一种用于深度学习模型的开集识别算法&#xff0c;它能够在模型的输出中区分已知类别和未知类别。该算法的核心思想是利用深度神经网络的倒数第二层&#xff08;全连接层&#xff09;的激活向量&#xff0c;通过构建每个类别的平均激活向量&#xff0…

黑匣子问题:大语言模型的内部工作原理

像 GPT-3 这样的大型语言模型 (LLM) 已经展示了令人印象深刻的自然语言能力&#xff0c;但它们的内部工作原理仍然知之甚少。这种“黑匣子”性质使得ChatGPT在敏感的现实应用程序中部署时可能会出现问题。 什么是LLM黑匣子问题&#xff1f; 语言学习模型 (LLM) 是强大的工具&…

Postman 接口测试工具使用方法

Postman 是一个强大的 API 测试工具,广泛用于开发和测试 API。以下是对 Postman 的详细介绍,包括其主要功能、使用方法和一些高级功能。 一、Postman 简介 Postman 是一个用于 API 开发的协作平台,提供了丰富的功能来进行 API 请求、测试和文档编写。它可以用来测试 RESTfu…

要求全国70%中医院设置康复科!康复科门诊服务这样建设!

近日&#xff0c;国家中医药管理局印发《国家中医药管理局关于进一步加强中医医院康复科建设的通知》提出&#xff0c;中医医院应根据当地人口规模及中医药康复服务需求设置康复科并作为独立科室进行建设和管理。有条件的二级以上中医医院应当按照《中医医院康复科推荐配置标准…

软件质量保证与测试

目录 一、测试流程 二、测试用例 2.1概念 2.2用例编写格式 三、设计测试点 3.1等价类 3.1.1概念 3.1.2案例 3.1.3适用场景 3.1.4执行用例 3.2边界值 3.2.1概念 3.2.2案例 3.2.3使用场景 3.3判定表 3.3.1判定表使用原因 3.3.2概念 3.3.3案例 3.3.4使用场景 …

Day4: 两两交换链表中的节点 24 删除链表的倒数第N个节点 19 链表相交 02.07 环形链表II 142

题目24. 两两交换链表中的节点 - 力扣&#xff08;LeetCode&#xff09; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* …

新鲜出炉的信息化一机两用方案

在信息化日益发展的今天&#xff0c;网络安全问题愈发凸显其重要性。尤其是在政府和企事业单位中&#xff0c;如何在保证业务流畅和工作效率的同时&#xff0c;确保信息高安全性&#xff0c;成为了一个亟待解决的问题。而“一机两用”政策&#xff0c;正是针对这一需求而提出的…

依法经营电信业务承诺书-ICP-模板范文

依法经营电信业务承诺书 xx省通信管理局 &#xff1a; 我公司在获得信息服务业务经营许可证以后&#xff0c;在从事电信业务经营活动中&#xff0c;将遵守如下承诺&#xff1a; 一、我们将严格遵守有关电信法律、法规和政策&#xff0c;严格按照已批准的业务服务范围&#…

QT布局管理(分割窗口QSplitter类、停靠窗口QDockWidget类、堆栈窗体QStackedWidget类、基本布局QLayout)

此片文章简单介绍布局管理的使用方法。通过实例先分别介绍分隔窗口QSplitter类、停靠窗口QDockWidget类及QStackedWidget类的使用&#xff0c;最后再通过一个实例介绍QLayout的使用。 分割窗口QSplitter类 分隔窗口可以灵活地布局窗口&#xff0c;可以用在文件资源管理器地窗…