Настройка рассылки SMS сообщений через gsm модем с linux сервера [2]

Linux
Топик в продолжение темы, где я обещал выложить доработанный скрипт. Последняя версия может рассылать пользователям или группе пользователей смс сообщения с использованием кириллицы и может вставлять заготовленный текст в поле сообщения. Удобно для однообразных рассылок, в которых меняется несколько символов.

Текст скрипта на php:

<?
$SPOOLDIR="/var/spool/sms/outgoing/";
$logfile="/var/log/smslog";
header('Content-type: text/html; charset=UTF-8');
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">
<html><head><title>SMS рассылки</title>
<!-- <meta http-equiv=\"Content-Type\" content=\"text/html;charset=iso-8859-15\"> -->
<style type='text/css'>
  body { 
  color: #222; 
  margin-left: 50px; 
  margin-right: 10%;
  font-family: Verdana, sans-serif;
  background: #efefef;
  }
  
  </style>

<script src='jquery-latest.min.js'></script>

</head><body>";

function RandStr() {
    $length = 8;
    $characters = "123456789abcdef";
    $string = "";
    for ($p = 0; $p < $length; $p++) {
        $string .= $characters[mt_rand(1, strlen($characters))];
    }
    return $string;
}
                                
$text = $_POST['text1'];
$dest = $_POST['dest'];

if ($text != "")
{
  if ($dest=="0") 
    { 
        $name="группа 1";
        $tel = array('+79151234567', //user1
    		     '+79109876543' //user2
    		     );
    }
    
  if ($dest=="1") 
    { 
        $name = "user1";
        $tel = array('+79151234567' );
    }

  if ($dest=="2") 
    { 
        $name = "user2";
        $tel = array('+79109876543' );
    }

   foreach ($tel as &$value)
   { 
    $alltel.=$value." ";
    $rs=RandStr();
    $fn="sms_$rs";
    $tempfile="/var/www/sms/tmp/$fn";
    $SMSFILE = fopen($tempfile, "a+");
    $ucs2text=mb_convert_encoding($text, "UCS-2BE", "UTF-8");
    fwrite($SMSFILE, "To: $value\nAlphabet: UCS2\nUDH: false");
    fwrite($SMSFILE, "\n\n$ucs2text");
    fclose($SMSFILE);
    $ip=$_SERVER['REMOTE_ADDR'];
    copy("$tempfile", "$SPOOLDIR/$fn");
   }
   
    $log=fopen($logfile, "a+");
    fwrite($log, "\n\n-------------------\nIP:$ip\nTime:".date('l jS \of F Y h:i:s A')." \nTo: $name($alltel)\n$text");
    fclose($log);
    print "
 Сообщение ($text) отправленo на телефон:  $name($alltel) 
";
    print "

<a href='index.php'>Вернутся в начало</a>";

}
else
{
  print " 

<font size='4'> Отправка СМС рассылок </font>

";
  print "  <form name='test' id='test' method='post' ";
  print ">
    <table width='600px'>
    <tr><td>
    Получатели:
    <select name='dest' id='dest' size='20' style='width: 300px'  onClick='getname();' onSelect='getname();' >
    <option value=0>Группа 1</option>
    <option value=1>Юзер 1</option>
    <option value=2>Юзер 2</option>
    </select>
    </td>
    <td>
    Выбор формы:
      <select name='form1' id='form1' style='width : 300' onChange='getform();'>
         <option value=''></option>
         <option value='текст формы 1'>Форма 1</option>
         <option value='Текст формы 2'>Форма 2</option>
     </select>    
    

Текст сообщения:
    <textarea rows='16' cols='48' name='text1' id='text1'></textarea>
    
    </td>
    </tr>
    </table>
    <input type='submit' value='Отправка сообщения'>
  </form>              

<div id='div1'>.</div>

<script>
function getname(){
    var sel = document.test.dest;
    document.getElementById('div1').innerHTML = sel.options[sel.value].text;
    }

function getform(){
    var sel = document.test.form1;
    document.getElementById('text1').innerHTML = sel.value;
    }

</script>
";
}

print "
</body>
</html>
";

?>


Библиотека позволяет сделать проверку доставки СМСки, возможно доделаю или может уже у кого-то есть?

7 комментариев