Warning: array_merge(): Argument #2 is not an array in /hsphere/local/home/magistr/codeismy.name/wp-content/plugins/wp-pagenavi/scb/Options.php on line 46

Скрипт отправки sms

Дата: Апрель 14, 2009

(0) комментариев

Несмотря на то, что услуги связи сейчас достаточно дешёвые, ничто не заменить живого общения по смс)). В данном скрипте я хочу описать принцип работы подобных сервисов а так же показать пример написания собственного скрипта рассылки в ряд стран.
Для отправки смс у большинства операторов существует так называемый почтовый шлюз. Именно через него и идёт отправка. Каждый номер телефона ассоциируется с определённым email адресом на который просто отослав почтовое сообщение оно придёт как смс.
Такой email чаще всего имеет следующий вид: xxxxxxxxxxx@домен.оператора где ххххххххххх это номер абонента в международном формате.
Вот список известных мне почтовых шлюзов для операторов разных стран:

//Cписок SMS-шлюзов
//Глобальные

«ICQ»@pager.icq.com
«AT&T»@mobile.att.net
«Cingular»@mobile.mycingular.net
«Cingular #2″@mobile.mycingular.com
«Verizon»@vzwpix.com
«Sprint PCS»@messaging.sprintpcs.com
«T-Mobile»@tmomail.net
«Alltel»@alltelmessage.com
«Alltel #2″@message.alltel.com
«CellularONE»@mobile.celloneusa.com
«Greens Communications»@pager.schmobile.com
«GTE Wireless»@messagealert.com
«Nextel»@messaging.nextel.com
«Omnipoint»@omnipointpcs.com
«Qwest»@qwestmp.com
«SMF/Schuylkill Mobile Fone»@pager.schmobile.com
«SouthernLinc»@page.southernlinc.com
«Suncom»@tms.suncom.com
Rogers Wireless Канада @pcs.rogers.com
Napishi.Ru»Отправить сообщени
//Россия
Beeline Россия @sms.beemail.ru
F1 Communications Орёл @pager.oryol.ru
GSM Ульяновск @sms.smr.ru
InterAntena Казань inter@bancorp.ru
Kontinental Липецк pager@link.lipetsk.su
Mobil Telecom Калуга @pager.mobil-telecom.kaluga.com
RANET Москва send@ra.net.ru
RCA Казань pager@rca.ru
SmsClub Москва»
Vessolink Москва @pager.vessolink.ru
YeniseyTelecom Россия @sms.etk.ru
Алком Электроникс Кемерово @alel.kuzbass.net
Астраханьпейдж Астрахань page@page.astranet.ru
Байкалвестком Иркутск @sms.bwc.ru
БМ ТЕЛЕКОМ Уфа bmt@mail.bashtelecom.ru
ВессоЛинк Санкт-Петербург @pager.vesso.spb.ru
Вессо-Тел Владивосток @vesso.vl.ru
ВестКом Самара wectcom@transit.samara.ru
Восточный экспресс Новосибирск pager@exp.irs.ru
Джакур Томск pager@pager.tomsk.ru
Донтелеком»@dontelecom.ru
Европроект Ульяновск @pager.europe.mv.ru
Единая пейджинговая Абакан pager@mir.khakassia.ru
Единая Пейджинговая Саратов pager@tp.saratov.su
Единая пейджинговая Ульяновск pg@epsr.mv.ru
Единая Пэйджинговая Тюмень pager@tyumen.ru
Интерпейдж Ульяновск @pager.simbir.ru
Искра-пейдж Красноярск page@iskra.krs.ru
Итекс Псков @pager.pskov.ru
ККЦ Калининград pager@kcc.baltnet.ru
КОДАШ Челябинск pager@mtelecom.chel.su
Континенталь Екатеринбург pager@continental.ural.ru
Кубань-GSM Краснодар @sms.kubangsm.ru
МегаФон Россия 7@sms.mgsm.ru
Мегафон Урал Ханты-Мансийск @sms.megafonural.ru
Мегафон Сибирь Россия +7@sms.megafonsib.ru
МегаФон Пенза @sms.mgsm.ru
Мобиком-Киров Киров @kirov-ugsm.ru
Мобил Сервис Тюмень @page.scc.ru
МобилТелеком Восток Владивосток pager@mtv.febras.ru
МобилТелеком Астрахань page@page.bignet.ru
МобилТелеком Барнаул pager@mtc.alt.ru
МобилТелеком Казань pager@bancorp.ru
МобилТелеком Москва @notify.mtelecom.ru
МобилТелеком Омск @pager.rvs-mtc.infomsk.ru
МобилТелеком Череповец pager@metacom.ru
МТС Россия @sms.gate.ru
МТС Россия @scs?900.ru
Мульти-Пейдж Москва @pager.multi-page.ru
НГТС Новосибирск @pager.nsk.su
НПС Континенталь Красноярск cont@continental.krsk.ru
Омский пэйджер Омск ompager@online.ru
Парагон Красноярск pager@paragon.krasnoyarsk.su
Пейджинговая компания Новосибирск pmail@pagercom.ru
Пенза-GSM Пенза @penza-gsm.ru
ПС Континенталь Москва pager@continental.ru
Радиопэйдж Москва @radiopage.ru
Радиопэйдж Ташкент pager@rpage.uznet.net
Сибпейдж Нижневартовск page@nvart.ru
Сибпэйдж Новосибирск pager@pager.sibpage.ru
СИБтон&ТрансКом Новосибирск pager@sibton.nsk.su
СМАРТС Тольятти @sms.smr.ru
ССС-900 Новосибирск @scs?900.ru
СТлинк Пермь pager@stlink.perm.ru
ТАСКОМ Москва @pager.tascom.ru
ТТС Магадан page@tts.magadan.su
УралСвязьИнформ Пермь @pager.mtts.perm.ru
ХантымансийскЭлектроСвязь Хантымансийск pagein@hms.wsnet.ru
Экском Екатеринбург @excom.nexcom.ru
Экском Липецк pager@excom.lipetsk.ru
//Беларусь
Solid Paging Минск pager@solid.minsk.by
Белрадиопэйдж Минск @pager.radiopage.com.by
Вессобел Минск pager@vessobel.minsk.by
Мобилком Минск pager@mobilcom.com.by

Kyivstar (контрактные и корпоративные пакеты) GSM 900/1800 380*********@sms.kyivstar.net
Kyivstar (пакет Ace&Base) GSM 900/1800 380*********@2sms.kyivstar.net
Kyivstar (пакет Djuice) GSM 900/1800 380*********@sms.kyivstar.net
UMC (контрактные и корпоративные пакеты) GSM 900/1800 38050*******@sms.umc.ua
UMC (пакет Sim-Sim) GSM 900/1800 38050*******@sms.umc.ua
UMC (виртуальный оператор Jeans) GSM 900/1800 *******@sms.jeans.com.ua
UMC (виртуальный оператор Jeans) GSM 900/1800 *******@sms.jeans.net.ua
life:) GSM 900/1800 mail2sms не поддерживается
Beeline GSM 900/1800 38068*******@sms.beeline.ua
Golden Telecom GSM 1800 +38039*******@sms.gt.com.ua

А теперь пример использования всего этого. Для начала создадим форму для заполнения сообщения выбора номера и оператора. Она конечно не универсальная и можно было бы придумать что-то по лучше, но в данном случае нам для примера хватит и такой:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
<html>
<head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">
<title>SMS</title>
<script type="text/javascript">
<!--
var maxLen=160;
 function setLen(dcs)
{
  if( dcs == 0 )
  {
    maxLen = 160;
  }
  else
  {
    maxLen = 70;
  }
  checkLen();
}

function setmaxlng()
{
document.text.len.value = maxLength;
}

function checkLen()
{
   if (document.all) {
      str = text.sms.value;
      len = str.length;
   }
   else{
       str = document.forms.text.sms.value;
       len = document.forms.text.name.textLength;
   }
   var rusLen = 0;
   if(document.forms.text.dcs[1].checked){
       var re = /[ёжцчшюя??]/i;
       var re1 = /[щ]/i;
       for(i=0;i<=len;i++){
           if(re.test(str.substr(i,1))){
           rusLen = rusLen +1;
           }
           if(re1.test(str.substr(i,1))){
           rusLen = rusLen +2;
           }
       }
   }
   fullLen = maxLen - rusLen;
  if ( len > fullLen) document.forms.text.sms.value = str.substring(0,fullLen);
  document.forms.text.len.value = (fullLen - document.forms.text.sms.value.length);
  document.forms.text.sms.focus();
}
// ------------------------------------Start garbage-----------------------------------------
// Translit:
// -------------------------- CONVERT TO RUS --------------------------
// 1 character letters
eng_table = "ABVGDEZIJKLMNOPRSTUFHXCYabvgdezijklmnoprstufhxcy";
rus_table = "АБВГДЕЗИЙКЛМНОПРСТУФХХЦЫабвгдезийклмнопрстуфххцыь";
// 2 character letters
eng_table2 = "YOJOZHCHSHYUJUYAJAyojozhchshyujuyajaYoYoZhChShYuJuYaJa";
rus_table2 = "ЁЁЖЧШЮЮЯЯёёжчшююяяЁЁЖЧШЮЮЯЯ";

function translit2win(str)
{
var len = str.length;
var new_str="";

for (i = 0; i < len; i++)
{
 // Check for 2-character letters
 is2char=false;
 if (i < len-1)
 {
  for(j = 0; j < rus_table2.length; j++)
  {
   if(str.substr(i, 2) == eng_table2.substr(j*2,2))
   {
    new_str+= rus_table2.substr(j, 1);
    i++;
    is2char=true;
    break;
   }
  }
 }

 if(!is2char)
 {
  // Convert one-character letter
  var c = str.substr(i, 1);
  var pos = eng_table.indexOf(c);
  if (pos < 0)
   new_str+= c;
  else
   new_str+= rus_table.substr(pos, 1);
 }
}
return new_str;
}
 

// -------------------------- CONVERT TO LAT --------------------------
lat_eng_table = "ABVGDEJZIYKLMNOPRSTUFH4CIabvgdejziyklmnoprstufh4ci'";
lat_rus_table = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЧЦЫабвгдежзийклмнопрстуфхчцыь";

function translit2lat(str)
{
var len = str.length;
var new_str="";

for (i = 0; i < len; i++)
{
 // Check for 2-character letters
 is2char=false;
 if (i < len)
 {
  if(str.substr(i, 1) == 'Ю')
  {
   new_str += 'YU ';
   i++;
   is2char=true;
  }
  if(str.substr(i, 1) == 'ю')
  {
   new_str += 'yu ';
   i++;
   is2char=true;
  }
 
  if(str.substr(i, 1) == 'Я')
  {
   new_str += 'YA ';
   i++;
   is2char=true;
  }
  if(str.substr(i, 1) == 'я')
  {
//    alert("1"+str.substr(i, 1)+"1");
   new_str += 'ya ';
   i++;
   is2char=true;
  }
 }
 // Convert one-character letter
 if(!is2char)
 {
  var c = str.substr(i, 1);
  var pos = lat_rus_table.indexOf(c);
  if (pos < 0)
   new_str+= c;
  else
   new_str+= lat_eng_table.substr(pos, 1);
 }
}
return new_str;
}
// ------------------------------------end garbage-----------------------------------------
function openTranslit()
{
var myUrl = "translit.html";
myWin=window.open(myUrl, "wind1", "width=800,height=745,resizable=no,scrollbars=no,menubar=no");
}


var rus_lr2 = ('Е-е-О-о-Ё-Ё-Ё-Ё-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Э-Э-Ю-Ю-Я-Я-Я-Я-ё-ё-ж-ч-ш-щ-э-ю-я-я').split('-');
var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ'+String.fromCharCode(35)+'-ь'+String.fromCharCode(39)+'-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Щ-Ы-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ы-ь-ь-я').split('-');
var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-'+String.fromCharCode(96)+'-q').split('-');
var rus_rl = ('А-Б-В-Г-Д-Е-Ё-Ж-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Ч-Ш-Щ-Ъ-Ы-Ь-Э-Ю-Я-а-б-в-г-д-е-ё-ж-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-ц-ч-ш-щ-ъ-ы-ь-э-ю-я').split('-');
var lat_rl = ('A-B-V-G-D-E-JO-ZH-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-CH-SH-SHH-'+String.fromCharCode(35)+String.fromCharCode(35)+'-Y-'+String.fromCharCode(39)+String.fromCharCode(39)+'-JE-JU-JA-a-b-v-g-d-e-jo-zh-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-c-ch-sh-shh-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-je-ju-ja').split('-');

var lat = ('/E_/e_/O_/ o_Шh_Йo_Зh_Цh_Сh_Йe_Йu_Йa_Ыo_Ыu_Ыa_ШH_ЙO_ЗH_ЦH_СH_ЙE_ЙU_ЙA_ЫO_ЫU_ЫA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_S_T_U_F_H_C_ъ#_Y_ь'_H_W_Q_шh_йo_зh_цh_сh_йe_йu_йa_ыo_ыa_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_h_c_#_y_'_h_w_q').split('_');
var rus =('E_e_O_o_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_Ъ_Ы_Ь_Х_Щ_Я_щ_ё_ж_ч_ш_э_ю_я_ё_я_а_б_в_г_д_е_з_и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь_х_щ_я').split('_');
var rus2 = ('Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_Ъ_Ы_Ь_щ_ё_ж_ч_ш_э_ю_я_а_б_в_г_д_е_з_и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь').split('_');
var lat2 = ('SHH_JO_ZH_CH_SH_JE_JU_JA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_S_T_U_F_H_C_##_Y_''_shh_jo_zh_ch_sh_je_ju_ja_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_h_c_#_y_'').split('_');

var translitown=0;
var processhtmltags = 1; // switch to latin when the html tag <...> is typed in
var processbbcodetags = 1; // switch to latin when the bbcode tag [...] is typed in
var language = 0;
var maxtransliterationlength=3;
var lenreafontsize = 14; // WAENING: the value is defined in the main.css !!!
var textreafontwidth = 7; // The width of the text is supposed to be 7 !!!

var prelanguage = 0;

function translatesymboltocyrillic(txt)
{
for (var ii=0; ii<lat.length; ii++)
{
 pos = txt.length>lat[ii].length?(txt.length-lat[ii].length):0;
 if (lat[ii]==txt.substr(pos,txt.length-pos)) {
  return txt.substr(0,txt.length-lat[ii].length)+rus[ii];
 }
}
return txt;
}
function translatesymboltolatin(symb)
{
for (var ii=0;ii<rus2.length;ii++)
{
 if (rus2[ii]==symb)
 return lat2[ii];
}
return symb;
}

function translateAlltoCyrillic()
{
var inloop=1;
tt = window.document.text.sms;
p1 = tt.selectionStart; p2 = tt.selectionEnd;
var preval = ""; var postval="";
if (p1==p2) {txt = tt.value;}
else
{
 preval = tt.value.substring(0, p1);
 txt = tt.value.substring(p1,p2);
 postval = tt.value.substring(p2);
}
var txtnew = "";
if ((!processhtmltags)&&(!processbbcodetags))
{
 txtnew = translateStringtoCyrillic(txt);
}
else
{
 var htt1,pbb1,t1,t2,txt1,txt2,tag_open,tag_close;
 var noinputtag=0;
 if (processhtmltags) {tag_open="<";tag_close=">";}
 if (processbbcodetags) {tag_open="[";tag_close="]";}
 while(inloop)
 {
  if (processhtmltags&&processbbcodetags)
  {
   htt1 = txt.indexOf("<");
   pbb1 = txt.indexOf("[");
   if (pbb1==htt1) {noinputtag=1}
   if (pbb1==-1) {pbb1=txt.length;}
   if (htt1==-1) {htt1=txt.length;}  
   if (htt1<pbb1) {t1=htt1; tag_close=">";} else {t1=pbb1; tag_close="]";}
  }
  else
  {
   t1 = txt.indexOf(tag_open);
   if (t1==-1) noinputtag=1;
  }
  if (noinputtag) {inloop=0;t1=txt.length;t2=txt.length;}
  else
  {
   txt2=txt.substring(t1,txt.length);
   t2=txt2.indexOf(tag_close);
   if (t2==-1) {t2=t1+1} else {t2=t2+t1+1};
  }
  txt1 = txt.substring(0,t1);
  txt2 = txt.substring(t1,t2);
  txt = txt.substring(t2,txt.length);
  txtnew = txtnew+translateStringtoCyrillic(txt1)+txt2;  
 }
}
tt.value = preval+txtnew+postval;
if (p1!=p2) {tt.setSelectionRange(p1+txtnew.length,p1+txtnew.length);}
tt.focus();
return true;
}
function translateStringtoCyrillic(thestringlat)
{
var symbb,fromm,howmuch,thestringcyr="";
for (kk=0;kk<thestringlat.length;kk++)
{
 howmuch = thestringcyr.length>maxtransliterationlength?maxtransliterationlength:thestringcyr.length;
 fromm = thestringcyr.length-howmuch;
 symbbb = thestringlat.substr(kk,1);
 symbbb = translatesymboltocyrillic(thestringcyr.substr(fromm,howmuch)+symbbb);
 thestringcyr = thestringcyr.substr(0,fromm)+symbbb;  
}
return thestringcyr;
}
function translateAlltoLatin()
{
tt = window.document.text.sms;
p1 = tt.selectionStart; p2 = tt.selectionEnd;
var preval = ""; var postval="";
if (p1==p2) {txt = tt.value;}
else
{
 preval = tt.value.substring(0, p1);
 txt = tt.value.substring(p1,p2);
 postval = tt.value.substring(p2);
}
txtnew="";
var symb = "";
for (kk=0;kk<txt.length;kk++)
{
 symb = translatesymboltolatin(txt.substr(kk,1));
 txtnew = txtnew.substr(0,txtnew.length) + symb;
}
tt.value = preval+txtnew+postval;
if (p1!=p2) {tt.setSelectionRange(p1+txtnew.length,p1+txtnew.length);}
tt.focus();
return true;
}

//-->
</script>
</head>
<body link="#000000" alink="#000000" vlink="#000000">
<center>
<table border=0 width=90%>
<tr>
<td width=50%>
<body onload="checkLen()">
<FORM ACTION="send.php" METHOD=POST name="text">
<TABLE BORDER=0>
<TR>
<TD>Номер телефона:</TD>
<TD><input type=text name="phone" size=18 maxlength=12></TD></TR>
<TR>
<TD>Выбор оператора:</TD>
<TD><select name="operator" size=1>
<option style="background-color:red">Ukraine</option>
<option value="01">Beeline-Украина</option>
<option value="02">Jeans,Mts,Sim-Sim,Ekotel</option>.
<option value="03">Kyivstar,Djuice,Ace&Bese,Мобiлич</option>
<option style="background-color:red">Russia</option>
<option value="04">Билайн вся Россия </option>
<option value="05">Байкалвестком</option>
<option value="06">Волгоград-GSM</option>
<option value="07">Енисей Телеком</option>
<option value="07">Мегафон-Центр</option>
<option value="09">Мегафон-Кавказ</option>
<option value="10">Мегафон-Северо запад</option>
<option value="11">Мегафон-Сибирь</option>
<option value="12">Мегафон Дальний восток</option>
<option value="13">Мегафон-Урал</option>
<option value="14">МегаФон-Поволжье</option>
<option value="15">МТС-Кубань,Ставрополь</option>
<option value="16">Мтс-Ростов</option>
<option value="17">МТС-РеКом</option>
<option value="18">Мтс-Поволжье</option>
<option value="19">Мтс-Урал</option>
<option value="20">Мтс-Новосибирск</option>
<option value="21">Мтс-Приморье</option>
<option value="22">Мотив</option>
<option value="23">НСС</option>
<option value="24">Ульяновск-GSM</option>
<option value="25">Сотел Н.Новгород</option>
<option value="26">Саратов-мобайл</option>
<option value="27">Оренбург-GSM</option>
<option value="28">Пенза-GSM</option>
<option value="29">НТК-Приморье</option>
<option value="30">Сахалин-мобайл</option>
<option value="31">СМАРТС</option>
<option value="32">ТАТИНКОМ Татарстан</option>
<option value="33">Шупашкар-GSM</option>
<option value="34">Ярославль-GSM</option>
<option style="background-color:red">Казахстан</option>
<option value="35">Билайн Алматы</option>
<option value="36">K-Mobile Алматы</option>
<option style="background-color:red">Латвия</option>
<option value="37">LMT</option>
<option value="38">Tele2</option>
<option style="background-color:red">Молдова</option>
<option value="39">Интерднестрком CDMA </option>
</select>
</TD></TR>
<TR>
<td colspan="2">Отправить сообщение на русском?</td>
</tr>
<tr>
<t

Если не вдаваться в детали, то можно увидить, что основные элементы отвечающие за отправку это

1
2
<select name="operator" size=1>
<textarea name="sms">

именно они и отвечают за передачу нашего сообщения в скрипт отправки. Теперь напишем достаточно простой по структуре скрипт для отправки, котоый будет отправлять наше сообщение на почтовый шлюз оператора и дальше на номер абонента.
send.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?
$mail_addr = $_POST["phone"];
$text = $_POST["sms"];
//выбираем соответствующий шлюз
switch ($_POST["operator"]) {

//Ukraine
case "01": //Beeline-Украина
$mail_addr .= "@sms.beeline.ua";
break;
case "02": //Jeans,Mts,Sim-Sim,Ekotel
$mail_addr .= "@sms.mts.com.ua";
break;
case "03": //Kyivstar,Djuice,Ace&Bese,Мобiлич
$mail_addr .= "@sms.kyivstar.net";
break;

//Russia

case "04": //Билайн вся Россия  
$mail_addr .= "@sms.beemail.ru";
break;
case "05": //Байкалвестком
$mail_addr .= "@sms.bwc.ru";
break;
case "06": //Волгоград-GSM
$mail_addr .= "@volgogsm.ru";
break;
case "07": //Енисей Телеком
$mail_addr .= "@sms.etk.ru";
break;
case "07": //Мегафон-Центр
$mail_addr .= "@sms.megafoncenter.ru";
break;
case "09": //Мегафон-Кавказ
$mail_addr .= "@mailsms.mobicomk.ru";
break;
case "10": //Мегафон-Северо запад
$mail_addr .= "@nwgsm.ru";
break;
case "11": //Мегафон-Сибирь
$mail_addr .= "@sms.megafonsib.ru";
break;
case "12": //Мегафон Дальний восток
$mail_addr .= "@sms.megafondv.ru";
break;
case "13": //Мегафон-Урал
$mail_addr .= "@sms.ugsm.ru";
break;
case "14": //МегаФон-Поволжье
$mail_addr .= "@sms.mgsm.ru";
break;
case "15": //МТС-Кубань,Ставрополь
$mail_addr .= "@sms.kubangsm.ru";
break;
case "16": //Мтс-Ростов
$mail_addr .= "@sms.rnd.mts.ru";
break;
case "17": //МТС-РеКом
$mail_addr .= "@reсom.ru";
break;
case "18": //Мтс-Поволжье
$mail_addr .= "@volgase.mts.ru";
break;
case "19": //Мтс-Урал
$mail_addr .= "@sms.uraltel.ru";
break;
case "20": //Мтс-Новосибирск
$mail_addr .= "@sms.mtslife.ru";
break;
case "21": //Мтс-Приморье
$mail_addr .= "@sms.primtel.ru";
break;
case "22": //Мотив
$mail_addr .= "@sms.ycc.ru";
break;
case "23": //НСС
$mail_addr .= "@mobilemail.ru";
break;
case "24": //Ульяновск-GSM
$mail_addr .= "@mobile.ul-gsm.ru";
break;
case "25": //Сотел Н.Новгород
$mail_addr .= "@sms.sotel.nnov.ru";
break;
case "26": //Саратов-мобайл
$mail_addr .= "@saronline.ru";
break;
case "27": //Оренбург-GSM
$mail_addr .= "@sms.orenburg-gsm.ru";
break;
case "28": //Пенза-GSM
$mail_addr .= "@penza-gsm.ru";
break;
case "29": //НТК-Приморье
$mail_addr .= "@sms.vntc.ru";
break;
case "30": //Сахалин-мобайл
$mail_addr .= "@sms.stmobile.ru";
break;
case "31": //СМАРТС
$mail_addr .= "@sms.samara-gsm.ru";
break;
case "32": //ТАТИНКОМ Татарстан
$mail_addr .= "@tatincom.ru";
break;
case "33": //Шупашкар-GSM
$mail_addr .= "@sms.shgsm.ru";
break;
case "34": //Ярославль-GSM
$mail_addr .= "@sms.yargsm.ru";
break;

//Казахстан

case "35": //Билайн Алматы
$mail_addr .= "@sms.beeline.kz";
break;   
case "36": //K-Mobile Алматы
$mail_addr .= "@sms.k-mobi

Вот так просто это всё делается. Даный скнипт очень просто реализуется на любом сайте, но у некоторых операторов сушествует ограничение на отправку смс в день. Для решения данной проблеммы необходимо в некоторых случаях зарегистрироваться у оператора на сайте а в некоторых обратиться в центр поддержки или использовать прямую отправку по имэйл со спуфером.
В моём примере были указанны далеко не все операторы.

a

    Автор: Sergey




    Нет комментариев на "Скрипт отправки sms"

    Нет комментариев.


    Вы можете продолжить обсуждение этой статьи на форуме


    Имя : 
    Почта : 
    Сайт : 
    Комментарий : 

    Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.

    Создание сайта - Echo-group Раскрутка сайтов