1.通過移動或聯通短信網關發送短信,這需要通信服務商給你開通短信端口,發送短信協議各個服務商都不一樣,比如移動的是cmpp2,cmpp3等
澗西ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
2.第二種是通過硬件設備發送短信,這個需要你有專門的硬件設備,比如一個上網卡或者一個手機模塊,通過調用com遵從一些協議發送短信
單純靠寫代碼是無法發短信的,至少要有一個WEBSERVICE接口或者硬件接口。
JAVA實現短信群發的步驟:
1、使用第三方短信平臺服務商,接入短信服務;
2、調用短信提交頁面發送請求;
3、服務器向第三方短信平臺提交發送請求;
4、短信平臺通過運營商將短信下發至用戶的手機上。
以下是秒賽短信平臺JAVA短信驗證碼接口代碼示例
package test;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URISyntaxException;
import java.net.URLEncoder;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.lang3.StringUtils;
public class Apis {
// 短信發送接口的http地址,請咨詢客服
private static String url = “xxxxxxxxxxxxxxxxxxxxxxxxxxxx”;
// 編碼格式。發送編碼格式統一用UTF-8
private static String ENCODING = “UTF-8”;
public static void main(String[] args) throws IOException, URISyntaxException {
// 賬號
String account = “************************”;
// 密碼
String pswd = “************************”;
// 修改為您要發送的手機號,多個用,分割
String mobile = “13*********”;
// 設置您要發送的內容
String msg = “【秒賽科技】您的驗證碼是:1234”;
// 發短信調用示例
System.out.println(Apis.send(account,pswd, mobile, msg));
}
/**
* 發送短信
*
* @param account
* ? ? ? ? ? ?account
* @param pswd
* ? ? ? ? ? ?pswd
* @param mobile
* ? ? ? ? ? ?手機號碼
* @param content
* ? ? ? ? ? ?短信發送內容
*/
public static String send(String account,String pswd, String mobile, String msg) {
NameValuePair[] data = { new NameValuePair(“account”, account),
new NameValuePair(“pswd”, pswd),
new NameValuePair(“mobile”, mobile),
new NameValuePair(“msg”, msg),
new NameValuePair(“needstatus”, “true”),
new NameValuePair(“product”, “”) };
return doPost(url, data);
}
/**
* 基于HttpClient的post函數
* PH
* @param url
* ? ? ? ? ? ?提交的URL
*
* @param data
* ? ? ? ? ? ?提交NameValuePair參數
* @return 提交響應
*/
private static String doPost(String url, NameValuePair[] data) {
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(url);
// method.setRequestHeader(“ContentType”,
// “application/x-www-form-urlencoded;charset=UTF-8”);
method.setRequestBody(data);
// client.getParams()。setContentCharset(“UTF-8”);
client.getParams()。setConnectionManagerTimeout(10000);
try {
client.executeMethod(method);
return method.getResponseBodyAsString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
package?com.winhands.quartz;
import?java.io.PrintWriter;
import?java.io.StringWriter;
import?java.io.UnsupportedEncodingException;
import?java.util.ArrayList;
import?java.util.Date;
import?java.util.HashMap;
import?java.util.List;
import?org.slf4j.Logger;
import?org.slf4j.LoggerFactory;
import?com.winhands.base.service.BaseService;
import?com.winhands.util.BaseConstant;
import?com.winhands.web.dict.entity.DictCommon;
import?com.winhands.web.xfhf.entity.SmsOutBox;
import?com.winhands.web.xfhf.entity.SmsVisit;
import?com.winhands.web.xfhf.entity.TaskInfo;
public?class?SmsSendSync?{
public?BaseService?baseService;
public?BaseService?baseServiceMas;
public?static?final?Logger?logger?=?LoggerFactory.getLogger(SmsSendSync.class);
//同步短信到mas機待發短信表
public?void?work()?{
//?任務ID?100001
//?首先查詢任務是否正在執行
//?查詢列表
TaskInfo?taskInfo?=?new?TaskInfo();
taskInfo.setTask_id("100001");
try?{
taskInfo?=?(TaskInfo)?baseService.queryForObject("sms_send.queryTaskStatus",?taskInfo);
//如果狀態是處室狀態則執行,否則此次任務不執行
if?(BaseConstant.task_status_cs.equals(taskInfo.getTask_status()))?{
taskInfo.setTask_status(BaseConstant.task_status_zx);//設置任務執行狀態為執行
taskInfo.setTask_last_start_time(new?Date());//設置任務執行開始時間
baseService.update("sms_send.updateTaskStatus",?taskInfo);//
//移動號碼庫
HashMapString,String?hashMap?=?new?HashMapString,String();
//134?、135、136、137、138、139、150、151、152、158、159、182、183、184。157、187、188
hashMap.put("134",?"134");
hashMap.put("135",?"135");
hashMap.put("136",?"136");
hashMap.put("137",?"137");
hashMap.put("138",?"138");
hashMap.put("139",?"139");
hashMap.put("150",?"150");
hashMap.put("151",?"151");
hashMap.put("152",?"152");
hashMap.put("157",?"157");
hashMap.put("158",?"158");
hashMap.put("159",?"159");
hashMap.put("182",?"182");
hashMap.put("183",?"183");
hashMap.put("184",?"184");
hashMap.put("187",?"187");
hashMap.put("188",?"188");
SmsVisit?smsSend?=?new?SmsVisit();
smsSend.setSms_status(BaseConstant.sms_status_csh);
List?list?=?baseService.queryForList("sms_send.queryForSmsTask",?smsSend);
List?smsMasList?=?new?ArrayList();
List?smsList?=?new?ArrayList();
if?(list?==?null||list.size()==0)?return;//?如果列表為空,沒有待辦任務,則任務結束
for?(int?i?=?0;?i??list.size();?i++)?{
smsSend?=?(SmsVisit)?list.get(i);
//String?msg?=?messagecontent(smsSend);
String?msg?=?smsSend.getSpare_2();
if(hashMap.get(smsSend.getVisit_phone().substring(0,?3))!=null){
SmsOutBox?smsOutBox?=?new?SmsOutBox();
smsOutBox.setSismsid(smsSend.getP_id());
smsOutBox.setReqdeliveryreport(BaseConstant.NoReport);
smsOutBox.setApplicationid(BaseConstant.APPLICATIONID);
smsOutBox.setDestaddr(smsSend.getVisit_phone());
smsOutBox.setMsgfmt(BaseConstant.MSGFMT);
smsOutBox.setRequesttime(new?Date());
smsOutBox.setExtcode(smsSend.getExtccode());
smsOutBox.setSendmethod(BaseConstant.NoMsg);//?正常短信
smsOutBox.setMessagecontent(msg);
smsMasList.add(smsOutBox);
}else{
boolean?con?=?true;
String?lastMsg?=?msg;
int?xh?=0;
while(con){
lastMsg?=?msg.substring(0,msg.length()??55???55?:?msg.length());
msg?=?msg.substring(msg.length()??55???55?:?msg.length(),msg.length());
if?(msg.equals(""))?{
con?=?false;
}
SmsOutBox?smsOutBox?=?new?SmsOutBox();
smsOutBox.setSismsid(smsSend.getP_id()+(xh==0?"":xh));
xh++;
smsOutBox.setReqdeliveryreport(BaseConstant.NoReport);
smsOutBox.setApplicationid(BaseConstant.APPLICATIONID);
smsOutBox.setDestaddr(smsSend.getVisit_phone());
smsOutBox.setMsgfmt(BaseConstant.MSGFMT);
smsOutBox.setRequesttime(new?Date());
smsOutBox.setExtcode(smsSend.getExtccode());
smsOutBox.setSendmethod(BaseConstant.NoMsg);//?正常短信
smsOutBox.setMessagecontent(lastMsg);
smsMasList.add(smsOutBox);
}
}
SmsVisit?smsSendTemp?=?new?SmsVisit();
smsSendTemp.setP_id(smsSend.getP_id());?
//smsSendTemp.setSpare_2(msg);//短信內容
smsSendTemp.setSms_status_time(new?Date());
smsSendTemp.setSms_status(BaseConstant.sms_status_yfswg);?
smsList.add(smsSendTemp);
}
baseService.insertBatch("sms_send.insertSmsOutBox",?smsMasList);//插入本地歷史記錄表
baseServiceMas.insertBatch("sms_mas.insertSmsOutBox",?smsMasList);//插入mas機待發送表
baseService.updateBatch("sms_send.updateSmsVisit",?smsList);//更新回訪記錄狀態
}
}?catch?(Exception?e)?{
e.printStackTrace();
//baseService.saveLog("同步短信到mas機待發短信表",?"100001",?"同步短信到mas機待發短信表錯誤");
logger.error("同步短信到mas機待發短信表錯誤",?getTrace(e));
}finally{
try?{
taskInfo.setTask_status(BaseConstant.task_status_cs);//設置任務執行狀態為初始
taskInfo.setTask_last_end_time(new?Date());//設置任務執行結束時間
taskInfo.setTask_status_desc("任務執行結束");
baseService.update("sms_send.updateTaskStatus",?taskInfo);//
}?catch?(Exception?e2)?{
e2.printStackTrace();
//?TODO:?handle?exception
}
}
}
public?String?messagecontent(SmsVisit?smsSend){
//XX,您好!您于XX月XX日辦理XX業務(或XX,您好!XX大隊于XX月XX日對你單位進行監督檢查/行政處罰/火災調查),現進行滿意度回訪,請回復數字:1為滿意;2為基本滿意;3為不滿意。感謝您對消防工作的支持!回復免費。宿遷市公安消防支隊
//首先根據業務類型來判斷采用哪種模板?監察
StringBuffer?msg?=?new?StringBuffer("");?
if(BaseConstant.jiancha.equals(smsSend.getVisit_deal_business_type())){
msg.append(smsSend.getVisit_name_cn())
???.append(",您好!")
???.append(smsSend.getVisit_deal_org_name())
???.append("于")
???.append(smsSend.getVisit_deal_time().substring(4,?6)).append("月")
???.append(smsSend.getVisit_deal_time().substring(6,?8)).append("日")
???.append("對你單位進行").append(DictCommon.getEntryMap(BaseConstant.jiancha).get(smsSend.getVisit_deal_business()))
???.append(",現進行滿意度回訪,請回復數字:1為滿意;2為基本滿意;3為不滿意。感謝您對消防工作的支持!");
}else?if(BaseConstant.yewu.equals(smsSend.getVisit_deal_business_type())){
msg.append(smsSend.getVisit_name_cn())
???.append(",您好!您于")
???.append(smsSend.getVisit_deal_time().substring(4,?6)).append("月")
???.append(smsSend.getVisit_deal_time().substring(6,?8)).append("日")
???.append("辦理").append(smsSend.getVisit_deal_business()).append("業務,")
???.append("現進行滿意度回訪,請回復數字:1為滿意;2為基本滿意;3為不滿意。感謝您對消防工作的支持!");
}
return?msg.toString();
}
public?BaseService?getBaseService()?{
return?baseService;
}
public?void?setBaseService(BaseService?baseService)?{
this.baseService?=?baseService;
}
public?BaseService?getBaseServiceMas()?{
return?baseServiceMas;
}
public?void?setBaseServiceMas(BaseService?baseServiceMas)?{
this.baseServiceMas?=?baseServiceMas;
}
public?static?void?main(String[]?args){
List?smsMasList?=?new?ArrayList();?
try?{
String?msg?=?"***,您好!*********于2015年5月2日對你單位進行監督檢查,現進行滿意度回訪,請回復數字:1為滿意;2為基本滿意;3為不滿意。感謝您對消防工作的支持!";
SmsOutBox?smsOutBox?=?new?SmsOutBox();
smsOutBox.setSismsid("12344");
smsOutBox.setReqdeliveryreport(BaseConstant.NoReport);
smsOutBox.setApplicationid(BaseConstant.APPLICATIONID);
smsOutBox.setDestaddr("111");
smsOutBox.setMsgfmt(BaseConstant.MSGFMT);
smsOutBox.setRequesttime(new?Date());
smsOutBox.setExtcode("2222");
smsOutBox.setSendmethod(BaseConstant.NoMsg);//?正常短信
boolean?con?=?true;
String?lastMsg?=?msg;
while(con){
lastMsg?=?msg.substring(0,msg.length()??55???55?:?msg.length());
msg?=?msg.substring(msg.length()??55???55?:?msg.length(),msg.length());
if?(msg.equals(""))?{
con?=?false;
}
SmsOutBox?smOutBox_temp?=?new?SmsOutBox();?
smOutBox_temp?=?smsOutBox;
smOutBox_temp.setMessagecontent(lastMsg);
?
smsMasList.add(smOutBox_temp);
}
for(Object?o:smsMasList){
SmsOutBox?smsOutBox2?=?(SmsOutBox)o;
System.out.println(smsOutBox2.getMessagecontent());
}
}?catch?(Exception?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
public?static?String?getTrace(Throwable?t)?{
StringWriter?stringWriter=?new?StringWriter();
PrintWriter?writer=?new?PrintWriter(stringWriter);
t.printStackTrace(writer);
StringBuffer?buffer=?stringWriter.getBuffer();
return?buffer.toString();
}
}
短信不是你想發??想發就能發,是收費的,我們公司是租用的移動MAS平臺的短信發送接收平臺,上面那是和一個和mas同步的一個小程序,租用別人的mas平臺是收費的,平臺有很多自己選擇,有發送接口可以調,發送內容自己提供
Java實現短信自動發送功能主要是用httpclient實現的,要有發短信的端口。
1、硬件設備是一個3G網卡;
2、軟件方面需要sun提過的java底層通信common包;
3、此外還需要第三方庫SMSLib,這個是開源項目,主要用于實現java發短信的功能;
主要代碼如下:
HttpClient?client?=?new?HttpClient();
PostMethod?post?=?new?PostMethod(
"");
post.addRequestHeader("Content-Type",
"application/x-www-form-urlencoded;charset=utf-8");//?在頭文件中設置轉碼
NameValuePair[]?data?=?{?new?NameValuePair("sname",?"*****"),
new?NameValuePair("spwd",?"*****"),
new?NameValuePair("scorpid",?"*****"),
new?NameValuePair("sprdid",?"*****"),
new?NameValuePair("sdst",?"*****"),
new?NameValuePair("smsg",?"*****")?};
post.setRequestBody(data);
client.executeMethod(post);
Header[]?headers?=?post.getResponseHeaders();
int?statusCode?=?post.getStatusCode();
System.out.println("statusCode:"?+?statusCode);
for?(Header?h?:?headers)?{
System.out.println(h.toString());
}
String?result?=?new?String(post.getResponseBodyAsString().getBytes("utf-8"));
System.out.println(result);
post.releaseConnection();
Java源程序(.java文件)——java字節碼文件(.class文件)——由解釋執行器(java.exe)將字節碼文件加載到java虛擬機(jvm)——字節碼文件(.class)就會在java虛擬機中執行。
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程? ?。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點? 。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等
分享標題:java給手機發信息代碼 java 短信發送
文章地址:http://m.kartarina.com/article20/dodedco.html
成都網站建設公司_創新互聯,為您提供網站維護、服務器托管、移動網站建設、外貿建站、網站導航、手機網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯