+ Ответить в теме
Страница 1 из 3
1 2 3 ПоследняяПоследняя
Показано с 1 по 40 из 90
  1. #1
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757

    отправка смс, email из DS

    Давно хотел написать. Но вот заказчику понадобилось и пришлось. Полазил по инету и вот что получилось.
    PHP код:
    $address 'smtp.mail.ru'// адрес smtp-сервера
    $port    25;          // порт (стандартный smtp - 25)
    $login   'mail';    // логин к ящику
    $pwd     'pass';    // пароль к ящику
    $from    'mail@mail.ru';  // адрес отправителя
    $to      '7номертелефона@sms.mgsm.ru';  // адрес получателя (об этом подробнее после кода)
    $subject c("edit1")->text;       // тема сообщения
    $message c("memo1")->text;          // текст сообщения
    try {
    // Создаем сокет
      
    $socket socket_create(AF_INETSOCK_STREAMSOL_TCP);
      if (
    $socket 0) {
        throw new 
    Exception('socket_create() failed: '.socket_strerror(socket_last_error())."\n");}
      
    // Соединяем сокет к серверу
      
    $result socket_connect($socket$address$port);
      if (
    $result === false) {
        throw new 
    Exception('socket_connect() failed: '.socket_strerror(socket_last_error())."\n");
      }
      
    // Читаем информацию о сервере
      
    read_smtp_answer($socket);
      
    // Приветствуем сервер
      
    write_smtp_response($socket'EHLO '.$login);
      
    read_smtp_answer($socket); // ответ сервера
      // Делаем запрос авторизации
      
    write_smtp_response($socket'AUTH LOGIN');
      
    read_smtp_answer($socket); // ответ сервера
      // Отравляем логин
      
    write_smtp_response($socketbase64_encode($login));
      
    read_smtp_answer($socket); // ответ сервера
      // Отравляем пароль
      
    write_smtp_response($socketbase64_encode($pwd));
      
    read_smtp_answer($socket); // ответ сервера
      // Задаем адрес отправителя
      
    write_smtp_response($socket'MAIL FROM:<'.$from.'>');
      
    read_smtp_answer($socket); // ответ сервера
      // Задаем адрес получателя
      
    write_smtp_response($socket'RCPT TO:<'.$to.'>');
      
    read_smtp_answer($socket); // ответ сервера
      // Готовим сервер к приему данных
      
    write_smtp_response($socket'DATA');
      
    read_smtp_answer($socket); // ответ сервера
      // Отправляем данные
      
    $message "To: $to\r\n".$message// добавляем заголовок сообщения "адрес получателя"
      
    $message "Subject: $subject\r\n".$message// заголовок "тема сообщения"
      
    write_smtp_response($socket$message."\r\n.");
      
    read_smtp_answer($socket); // ответ сервера
      // Отсоединяемся от сервера
      
    write_smtp_response($socket'QUIT');
      
    read_smtp_answer($socket); // ответ сервера
    } catch (Exception $e) {
      echo 
    "\nError: ".$e->getMessage();
    }
    //if (isset($socket)) {
      
    socket_close($socket);
    //}
    // Функция для чтения ответа сервера. Выбрасывает исключение в случае ошибки
    function read_smtp_answer($socket) {
      
    $read socket_read($socket1024);
      if (
    $read{0} != '2' && $read{0} != '3') {
        if (!empty(
    $read)) {throw new Exception('SMTP failed: '.$read."\n");
        } else {throw new 
    Exception('Unknown error'."\n");}
      }
    }
    // Функция для отправки запроса серверу
    function write_smtp_response($socket$msg) {
      
    $msg $msg."\r\n";
      
    socket_write($socket$msgstrlen($msg));

    Насчет сотовых компаний и их почтовых ящиков для смс можно посмотреть тут http://www.diwaxx.ru/frik/e-mail_to_sms.php
    Код работает. Проверено, не жаловаться. У некоторых может быть отключена служба приема смс из инета. Уточняйте у оператора.
    Для чего может пригодиться? Сможете принимать заказы, заявки, предложения, инфу от своей проги (фейкеров просьба выпить я... валерьянки ).

    ps подправил код. Был кривой копипаст. Сорри
    не забудьте подключить библиотеку php_sockets.dll
    Последний раз редактировалось noRoman; 29.03.2011 в 13:22.
    PS Я хороший программист потому что читаю это!

  2. 12 пользователя(ей) сказали cпасибо:

    devillom (10.04.2011), dimasoftua (04.04.2011), EINSHTEIN (29.03.2011), file_put_contents (18.04.2011), Gews (29.03.2011), kazer_xxx (29.03.2011), Kiro (29.03.2011), lancer51 (29.03.2011), ogrim (30.03.2011), ReS1DeNT (19.04.2011), santoni7 (29.03.2011), АрТисТ (29.03.2011)

  3. #2
    Опытный Аватар для lancer51
    Регистрация
    26.02.2011
    Адрес
    Днепропетровск
    Сообщений
    218
    PHP код:
    write_smtp_response($socket'EHLO '.$login); 
    Кто ж так здороваеться
    А скрипт хороший, спасибо.

  4. #3
    А можно подробнее? Я так понял с помощью e-mail и этого скрипта можно отправить письмо (смс) на мобильник через программу? Или нет?

  5. #4
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    не работает код, везде на сокеты ругается,библиотеку подключил,инфу подставил.,руки прямые

  6. #5
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    Цитата Сообщение от sterwart Посмотреть сообщение
    не работает код, везде на сокеты ругается,библиотеку подключил,инфу подставил.,руки прямые
    в строке $to = .... было две $$ . Исправил прошу прощения.
    PS Я хороший программист потому что читаю это!

  7. #6
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    другое делло,спасибо

  8. #7
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    хмм,выдает такую ошибку,после чего еще массу ошибок с сокетами

  9. #8
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    Цитата Сообщение от Gews Посмотреть сообщение
    А можно подробнее? Я так понял с помощью e-mail и этого скрипта можно отправить письмо (смс) на мобильник через программу? Или нет?
    у вас есть ящик mail@mail.ru Логин получается mail пароль к ящику pass. У mail.ru smtp сервер - smtp.mail.ru висит на порту 25
    7номертелефона@sms.mgsm.ru - ящик получателя. У сотовых операторов бывают такие почтовые ящики с них письмо пересылается на телефон, те отправляем на телефон +79377872328 значит почтовый ящик (для моего региона) - 79377872328@sms.mgsm.ru
    Если отправляем просто письмо, то указываем обычный email ( moi_drug@rambler.ru )
    PS Я хороший программист потому что читаю это!

  10. #9
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    Цитата Сообщение от sterwart Посмотреть сообщение
    хмм,выдает такую ошибку,после чего еще массу ошибок с сокетами
    php_sockets.dll подключали?

    ps теперь добавил напоминание в описание
    Последний раз редактировалось noRoman; 29.03.2011 в 13:04.
    PS Я хороший программист потому что читаю это!

  11. #10
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    да

  12. #11
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    так в чем моя ошибка ?((

  13. #12
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    sterwart, пришлите кусок кода до try. Спрячьте важные данные оставьте только сервера (smtp, почтовые mail.ru например)

    у меня пашет. Смс пришло и письмо отправил пришло
    Последний раз редактировалось noRoman; 29.03.2011 в 13:08.
    PS Я хороший программист потому что читаю это!

  14. #13
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    $address = 'smtp.mail.ru'; // адрес smtp-сервера
    $port = 25; // порт (стандартный smtp - 25)
    $login = 'smtpdelphuil@bk.ru'; // логин к ящику
    $pwd = 'XXX'; // пароль к ящику
    $from = 'mymail@bk.ru'; // адрес отправителя
    $to = '79xxxxxxxx'; // адрес получателя (об этом подробнее после кода)
    $subject = "Привет";
    $message = "Hello,php рулит!";
    Последний раз редактировалось sterwart; 29.03.2011 в 13:12.

  15. #14
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    if у тебя аська есть , то добавь мою 551644

  16. #15
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    Цитата Сообщение от sterwart Посмотреть сообщение
    $address = 'smtp.mail.ru'; // адрес smtp-сервера
    $port = 25; // порт (стандартный smtp - 25)
    $login = 'smtpdelphuil@bk.ru'; // логин к ящику
    $pwd = 'XXX'; // пароль к ящику
    $from = 'mymail@bk.ru'; // адрес отправителя
    $to = '79xxxxxxxx'; // адрес получателя (об этом подробнее после кода)
    $subject = "Привет";
    $message = "Hello,php рулит!";
    нет напишу не в аську,а сюда чтобы все знали
    Адрес отправителя у вас какой? mymail@bk.ru а smtp.mail.ru почему? Будет smtp.bk.ru Внимательней!
    Отправляете через свой почтовый ящик
    И логин к ящику будет mymail а не smtpdelphuil тем более smtpdelphuil@bk.ru
    mail.ru, list.ru, bk.ru у этих серверов так. На gmail.com вроде должно входить в логин @gmail.com
    Последний раз редактировалось noRoman; 29.03.2011 в 13:25.
    PS Я хороший программист потому что читаю это!

  17. #16
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    все равно на сокеты ругается

  18. #17
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    Цитата Сообщение от sterwart Посмотреть сообщение
    все равно на сокеты ругается
    подправил сообщение выше
    PS Я хороший программист потому что читаю это!

  19. #18
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    смотри мой верхний скрин,так на каждую функцию сокета socket_close... и другие

  20. #19
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); - вот на это орет,и на другие..

  21. #20
    На мыльник приходит идеально и быстро! Никаких ошибок не выдает! На мобильник отправил...пока нету...ошибок никаких нет!

  22. #21
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    короче вот так должно быть в коде (в вашем случае) внимательно сравниваем свой код:
    PHP код:
    $address 'smtp.bk.ru'// адрес smtp-сервера
    $port 25// порт (стандартный smtp - 25)
    $login 'smtpdelphuil'// логин к ящику
    $pwd 'XXX'// пароль к ящику
    $from 'smtpdelphuil@bk.ru'// адрес отправителя
    $to '79xxxxxxxx@jfjfh.ru'// адрес получателя (об этом подробнее после кода)
    $subject "Привет";
    $message "Hello,php рулит!"
    PS Я хороший программист потому что читаю это!

  23. #22
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    вы не поняли,у меня проблема не с данными а с сокетами...,на сокеты ругается,на создание сокета и др,выложите свою библ.сокета.

  24. #23
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    Цитата Сообщение от Gews Посмотреть сообщение
    На мыльник приходит идеально и быстро! Никаких ошибок не выдает! На мобильник отправил...пока нету...ошибок никаких нет!
    sterwart в коде данные неверно вносит. А смс иногда приходит минут через 10. Если не блокировано оператором до просьбы абонента. У МТС вроде так было раньше
    Последний раз редактировалось noRoman; 29.03.2011 в 13:29.
    PS Я хороший программист потому что читаю это!

  25. #24
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    Цитата Сообщение от sterwart Посмотреть сообщение
    вы не поняли,у меня проблема не с данными а с сокетами...,на сокеты ругается,на создание сокета и др,выложите свою библ.сокета.
    на сокеты ругается потому что не находит того что внесли

    Дайте мыло с которого хочется отправить
    Последний раз редактировалось noRoman; 29.03.2011 в 13:30.
    PS Я хороший программист потому что читаю это!

  26. #25
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192

  27. #26
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    Цитата Сообщение от sterwart Посмотреть сообщение
    значит у вас должно быть:
    PHP код:
    $address 'smtp.mail.ru'// адрес smtp-сервера
    $port 25// порт (стандартный smtp - 25)
    $login 'delphismtp'// логин к ящику
    $pwd 'XXX'//  пропишите
    $from 'delphismtp@mail.ru'// адрес отправителя
    $to '79xxxxxxxx@jfjfh.ru'// пропишите куда
    $subject "Привет";
    $message "Hello,php рулит!"
    PS Я хороший программист потому что читаю это!

  28. #27
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    не помогло,говорю же,данные тут не причем,все равно ошибка сокетов..может в tiem viewer посмотриш ?)

  29. #28
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    Цитата Сообщение от sterwart Посмотреть сообщение
    не помогло,говорю же,данные тут не причем,все равно ошибка сокетов..может в tiem viewer посмотриш ?)
    жду ваше id
    PS Я хороший программист потому что читаю это!

  30. #29
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    815 959 879
    8795

  31. #30
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    однако бывает проблема у ds %)

    пробуйте через переустановку DS. У sterwart если получится с переустановкой, то, я думаю, ответит
    Последний раз редактировалось noRoman; 29.03.2011 в 14:08.
    PS Я хороший программист потому что читаю это!

  32. #31
    Очень интересно..)))
    буду вечером пробывать...
    Видно,что человек трудился,некак нельзя непоставить спасибо!
    Последний раз редактировалось АрТисТ; 29.03.2011 в 15:53.

  33. #32
    Пользователь Аватар для santoni7
    Регистрация
    08.05.2010
    Сообщений
    156
    а у мня на 'EHLO ' ругается(( Пробовал менять, но выбивало ошибку о неизвестной команде, а так ошибка 501 ( ' syntacticaly invalid EHLO arguments' );
    noRoman, ответь плиз
    I don't know who my grandfather was; I am much more concerned to know what his grandson will be. Abraham Lincoln

  34. #33
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    Цитата Сообщение от santoni7 Посмотреть сообщение
    а у мня на 'EHLO ' ругается(( Пробовал менять, но выбивало ошибку о неизвестной команде, а так ошибка 501 ( ' syntacticaly invalid EHLO arguments' );
    noRoman, ответь плиз
    почтовый сервер какой? Отправитель. Возможно там иной алгоритм вопросов-ответов
    Последний раз редактировалось noRoman; 29.03.2011 в 16:17.
    PS Я хороший программист потому что читаю это!

  35. #34
    Пользователь Аватар для santoni7
    Регистрация
    08.05.2010
    Сообщений
    156
    $address = 'mail.santoni7.com.ua'; // àäðåñ smtp-ñåðâåðà
    $port = 25; // ïîðò (ñòàíäàðòíûé smtp - 25)
    $login = 'sms@santoni7.com.ua'; // ëîãèí ê ÿùèêó
    $pwd = '***'; // ïàðîëü ê ÿùèêó
    $from = 'sms@santoni7.com.ua'; // àäðåñ îòïðàâèòåëÿ
    $to = '+38**********@life.com.ua'; // àäðåñ ïîëó÷àòåëÿ (îá ýòîì ïîäðîáíåå ïîñëå êîäà)
    I don't know who my grandfather was; I am much more concerned to know what his grandson will be. Abraham Lincoln

  36. #35
    Пользователь Аватар для santoni7
    Регистрация
    08.05.2010
    Сообщений
    156
    а... все, разобрался) Другой ящик поставил просто, там логин без "@")
    спасибо noRoman!
    I don't know who my grandfather was; I am much more concerned to know what his grandson will be. Abraham Lincoln

  37. #36
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    ваш хостер предоставляет вам почтовый сервер? Вот у хостера нужно узнать smtp сервер для вашей почты, порт, ну логин наверное уже узнали (@santoni7.com.ua входит в логин)
    ошибку выдает на приветствие. Значит не отвечает... Подробности у хостера.

    либо ящик мне создайте для эксперимента и сайт хостера. позже пошаманю
    Последний раз редактировалось noRoman; 29.03.2011 в 16:26.
    PS Я хороший программист потому что читаю это!

  38. #37
    Пользователь Аватар для sterwart
    Регистрация
    01.03.2011
    Адрес
    Windows 2003
    Сообщений
    192
    Неа,не получилось ))), (((

  39. #38
    Мастер Аватар для noRoman
    Регистрация
    22.03.2010
    Адрес
    Новочебоксарск
    Сообщений
    757
    Цитата Сообщение от sterwart Посмотреть сообщение
    Неа,не получилось ))), (((
    реестр почистить. К devel-у вопрос уже.
    PS Я хороший программист потому что читаю это!

  40. #39
    Главный Разработчик Аватар для Devel
    Регистрация
    11.03.2010
    Сообщений
    1,231
    Стоит предупредить, что встраивая подобный код в программу и передавая ее третьему лицу ваш ящик можно легко взломать, вытащить пароль от вашего ящика достаточно легко.

  41. #40
    Цитата Сообщение от Devel Посмотреть сообщение
    Стоит предупредить, что встраивая подобный код в программу и передавая ее третьему лицу ваш ящик можно легко взломать, вытащить пароль от вашего ящика достаточно легко.
    Если делать форму тех. поддержки в программу, то вбивать логин с паролем можно левого ящика, а получателя свой, тут волноваться об утрате уже не нужно

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения