e-mail - sms обмен опытом (запостил весь код, потому только для интересующихся темой)

  • Автор темы Andrey_P
  • Дата начала

Andrey_P

Guest
e-mail - sms обмен опытом (запостил весь код, потому только для интересующихся темой)

--------структура таблицы---------
# phpMyAdmin MySQL-Dump
# version 2.3.3pl1
# http://www.phpmyadmin.net/ (download page)
#
# Хост: host.ru:3306
# Время создания: Янв 03 2003 г., 19:12
# Версия сервера: 3.23.51
# Версия PHP: 4.2.2
# БД : `abcd`
# --------------------------------------------------------

#
# Структура таблицы `smsforallusers`
#

CREATE TABLE smsforallusers (
user_server varchar(20) default NULL,
user_adres varchar(20) default NULL,
user_password varchar(5) default NULL,
user_tel varchar(20) default NULL,
user_name varchar(20) default NULL
) TYPE=MyISAM;
----------конец структуры----------
----------сам код----------------------
PHP:
<?

$server_name  = "localhost";
$server_user = "user";
$server_password = "password";
$server_connection = mysql_connect ("$server_name", "$server_user", "$server_password");
mysql_select_db ($server_user);
$server_table = "smsforallusers";

$query_sms_all = mysql_query ("SELECT user_server, user_adres, user_password, user_tel FROM $server_table");

WHILE ($row_sms = mysql_fetch_array($query_sms_all)):

$user_server = $row_sms["user_server"];
$user_adres = $row_sms["user_adres"];
$user_password = $row_sms["user_password"];
$user_tel = $row_sms["user_tel"];

$imap_stream=imap_open('{'."$user_server".'}Inbox',"$user_adres","$user_password");
$new_num_mes=imap_num_recent($imap_stream);

if ($new_num_mes > 0){

$inbox=imap_mailboxmsginfo($imap_stream);
$body1=imap_fetchbody($imap_stream,1,1,0);
$body2=imap_qprint($body1);
$body3=htmlspecialchars($body2);
$imap_h=imap_header($imap_stream,1); 
$subj1=$imap_h->subject; 
$from1=$imap_h->from; 
$needle="=?koi8-r?B?";
$poisk=stristr($subj1, $needle);
$poisk1=stristr($from1, $needle);
if ((!$poisk)&&(!$poisk1)){
print ("win-1251");
$encode=$body3;
} else {
print ("koi8-r");
$encode=convert_cyr_string($body3, k, w);
}
$body4=nl2br($encode);
print ("$encode");
print ("$body4");
$strl = strlen ($encode);
$max = 150;
$chi = $strl/150;
$ch = ceil($chi);
$cik = $ch - 1;

if ($strl <= $max):
$contl = 61 + $strl;
$fp1 = fsockopen ("www.gorizont-rt.ru", 80, $errno, $errstr, 30); 
if (!$fp1): 
echo "$errstr ($errno)<br>\n"; 
else: 

$str = "POST /cgi-bin/isapisms.dll/submit HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, */*
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
Host: [url]www.gorizont-rt.ru[/url]
Content-Length: $contl
Connection: Keep-Alive
Cache-Control: no-cache

txtAddr=$user_tel&txtSM=$encode&Submit=%CE%F2%EF%F0%E0%E2%E8%F2%FC
"; 

fputs ($fp1, $str); 
fclose ($fp1); 

endif;

else:

$num_cik = 0;
$num_cik1 = 0;
$i = -150;
$s = 0;

while ($txt=substr($encode, $i=$i+150, $s=$s+150)):

$npart = $num_cik1++;
$part = "$npart из $cik";

$fp1 = fsockopen ("www.gorizont-rt.ru", 80, $errno, $errstr, 30); 
if (!$fp1):
echo "$errstr ($errno)<br>\n";
else:
$str = "POST /cgi-bin/isapisms.dll/submit HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, */*
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
Host: [url]www.gorizont-rt.ru[/url]
Content-Length: 241
Connection: Keep-Alive
Cache-Control: no-cache

txtAddr=$user_tel&txtSM=$part%20$txt&Submit=%CE%F2%EF%F0%E0%E2%E8%F2%FC
"; 

fputs ($fp1, $str); 
fclose ($fp1); 

endif;

if ($num_cik++ == $cik): 
break;
else:
echo " ";
endif;

endwhile;

endif; 

imap_delete ($imap_stream, 1);
imap_close($imap_stream, CL_EXPUNGE);
print ("ok");
} else {
print ("no");
}
endwhile;

?>
----------конец кода----------------------

Что ещё предстоит: 1) оставлять сообщения на сервере, т.е. помечать отпраленные как отпраленные и больше их не трогать. 2) сделать мультисерверным в смысле операторов. 3) выбор клиентом сколько частей от письма отправлять. 4) выбор клиентом времени доставки

Если у кого есть время и желание помочь пишите andrey_mirny.ru
 

Andrey_P

Guest
что-то код не весь запостился вот продолжение

------------------------------------
PHP:
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, */*
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
Host: www.gorizont-rt.ru
Content-Length: 241
Connection: Keep-Alive
Cache-Control: no-cache

txtAddr=$user_tel&txtSM=$part%20$txt&Submit=%CE%F2%EF%F0%E0%E2%E8%F2%FC
"; 

fputs ($fp1, $str); 
fclose ($fp1); 

endif;

if ($num_cik++ == $cik): 
break;
else:
echo " ";
endif;

endwhile;

endif; 

imap_delete ($imap_stream, 1);
imap_close($imap_stream, CL_EXPUNGE);
print ("ok");
} else {
print ("no");
}
endwhile;

?>
---------------------------------------
 

Andrey_P

Guest
опять блин проблема вставляю ещё разок, к коду в первом сообщении прибавьте "/* переход на новую строку"
------------------------------
PHP:
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
Host: www.gorizont-rt.ru
Content-Length: 241
Connection: Keep-Alive
Cache-Control: no-cache

txtAddr=$user_tel&txtSM=$part%20$txt&Submit=%CE%F2%EF%F0%E0%E2%E8%F2%FC
"; 

fputs ($fp1, $str); 
fclose ($fp1); 

endif;

if ($num_cik++ == $cik): 
break;
else:
echo " ";
endif;

endwhile;

endif; 

imap_delete ($imap_stream, 1);
imap_close($imap_stream, CL_EXPUNGE);
print ("ok");
} else {
print ("no");
}
endwhile;

?>
------------------------------
 

RomikChef

Guest
Свои сообщения в этом форуме можно редактировать.
И НУЖНО.
Займись.
В первом сделай все что надо, а второе сотри.
А то как в знаменитом номере - тут играть, тут не играть, тут селедку заворачивали.
 

Alex-AKF

Guest
В двух слова объясни что же это будет?
 

Andrey_P

Guest
to Alex-AKF:
если скрипт занести в crontab, то он переодически проверяет почтовые ящики пользователей из таблицы и высылает им на SMS новые письма.

to RomikChef:
--------CUT--------
Вы не авторизовались под своим именем либо не имеете доступа к данной странице форума. Это может произойти по следующим причинам:
У вас нет прав для доступа к данной странице форума. Возможно, Вы пытаетесь отредактировать чужое сообщение или воспользоваться администраторскими функциями? Проверьте это и обратитесь к правилам форума.
Если же Вы пытаетесь создать сообщение, то, возможно, что администратор отключил Ваш аккаунт или Ваш аккаунт еще не активирован.
Имя участника: Andrey_P [выйти]
-----END CUT------
 

jeka!

Просто Member
По москве на mts не отправляются мессаги, там ограничение на 10 с 1 ip, так что это если чисто для себя делать, то можно.
Да и вобще надежного отправителя мессаг виг где найдёшь, у всех гемор.
 

Alex-AKF

Guest
2jeka:

Почему не найдёшь? Ещё как найдёшь - вопрос только во сколько буказоидов в месяяц это обойдётся.
 

jeka!

Просто Member
Я имею ввиду бесплатно, ещё бы я за эту хрень деньги платил :)
Я лучше через прокси к мтс коннектиться буду...
 
Сверху