Php отправка смс с сайта

Php отправка смс с сайта

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

Сразу скажу, что самый лучший способ — это использовать API стороннего платного сервиса. Первый сервис, который мне попался: http://smsaero.ru. В реальности их очень много, Вы можете их поискать и сравнить цены, плюс посмотреть, как они работают. Например, некоторые сервисы могут вставлять ещё и дополнительную рекламу в каждое SMS.

О том, как разобраться с API и как его использовать, я рассказывал в предудыщей статье: как работать с API.

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

После определения оператора можно с помощью того же cURL отправить запрос по данным из формы соответствующего оператора. Например, для Beeline: https://www.beeline.ru/sms/index.wbp. Безусловно, пользователю надо будет ещё подгрузить их капчу, чтобы он смог её ввести.

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

Я рассказал Вам 2 способа отправки SMS на сайте. Самый правильный — первый вариант, а тем, кто любит мучения, можно попробовать реализовать второй способ.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 5 ):

    Здравствуйте Михаил, мне нужно на сайте в админ панели сделать СМС рассылку регистрированным пользователям. Можете посоветовать какой-нибудь хороший сервис для рассылки.Я преподаю английский язык студентам собираюсь проводить несколько онлайн семинар, несколько раз в месяц никак не могу найти скрипт, чтобы установить на сайт можете в добавок и на этот вопросик ответить. Спасибо!

    Читайте также:  Zte blade vec 3g прошивка

    Здравствуйте, Саня. Используйте http://sms.ru/. Если у вас есть необходимость в отправке СМС сообщений из консоли или PHP программы, то вы можете воспользоваться следующими командами: HTTP: http://sms.ru/sms/send?api_ )));

    Спасибо Александр! А насчёт проведения семинаров на сайте можете что-нибудь посоветовать

    Для рассылок посмотрите уже упомянутый SMS Aero: http://smsaero.ru/ У них есть разные возможности для рассылок плюс редактируемая форма подписки, которую можно установить на сайт и собирать контакты посетителей.

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

    Наш скрипт используется для интеграции смс сервиса на сайтах более 10000 компаний, начиная от небольших стартапов до государственных учреждений всероссийского масштаба. Наш смс сервис поддерживает смс уведомления в разные страны мира. Полный перечень стран и тарифов доступен здесь.

    Инструкция по тестированию скрипта отправки смс сообщений на PHP

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

    • Зарегистрируйтесь на сайте
    • Сразу после регистрации добавьте свою уникальную подпись в личном кабинете.
    • Пока подпись активируется нашей службой поддержки, Вы можете скопировать функцию send, а в функции вызова подставить login и password, которые Вы указали при регистрации.

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

    Вступление

    Для того, чтобы отправить SMS через PHP не нужно много трудиться. Ниже вы можете увидеть схему, которая показывает весь процесс отправки текстового сообщения с веб-приложения на беспроводное устройство.

    • Текстовое сообщение сжимается веб-приложением, которое находится на HTTP сервере и после этого отправляется через Интернет (облачко) как email сообщение;
    • Short Message Service Gateway (SMS Gateway) получает сообщение и конвертирует его из email сообщения в SMS сообщение;
    • Впоследствии Short Message Service Center (SMSC), который по сути является роутером для мобильных устройств принимает сообщение;
    • В конце концов, сообщение приходит к получателю по беспроводной сети;

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

    Email в SMS

    Для того, чтобы превратить email сообщение в SMS, вам понадобятся 2 вещи:

    Читайте также:  Softether vpn нет списка серверов

      Номер телефона или >Оно может выглядеть приблизительно так: phoneNumber@domainName.com

    phoneNumber это номер телефона на который будет отправлен SMS. domainName.com — адрес SMS Gateway (системы, через которую будет отослан ваш смс);

    Для того, чтобы отправить SMS мистеру Example, вам необходимо в графе получателя в вашем почтовом клиенте написать 3855550168@vtext.com и отправить письмо. Оно будет доставлено на номер +1 (385) 555-0168 через беспроводную сеть Verizon.

    К примеру, я пошлю сообщение самому себе через Gmail:

    Когда я получу сообщение оно будет выглядеть следующим образом:

    Функция mail()

    Давайте двигаться дальше. Для отправки SMS сообщений мы можем использовать всеми известную функцию mail(), которая имеет следующую сигнатуру:

    bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

    Тут вы можете узнать о ней больше.

    • $to это получатель текстового сообщения. Валидные данные:
    • user@example.com
    • user1@example.com, user2@example.com
    • User
    • User1 , User2
  • $subject это тема сообщения, которая в общих чертах описывает содержание письма. Для SMS она не требуется;
  • $message это само сообщение, которое будет доставлено. Согласно PHP документации каждая строка сообщения должна заканчиваться символом (
    ) и не должна быть длиннее 70 символов;
  • Переделаем наш пример:

    Тестируем

    Давайте же проведём тест и убедимся, что через функцию mail() можно отправлять SMS сообщения. Используем следующий код:

    Сообщение, которое пришло на мой мобильный телефон выглядит так:

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

    Добавляем Юзабилити

    Теперь я хочу предложить вам создать небольшую форму для отправки SMS с сайта. Она имеет следующую структуру:

    Стиль

    Давайте немного её оформим:

    Вот что у нас получилось:

    Пишем скрипт

    Это сама сложная часть данного урока. Прошу внимания:

    • В первую очередь скрипт проверяет была ли отправлена информация;
    • Если да, то он проверяет наличие phoneNumber, carrier и smsMessage. Это полезно когда на странице больше чем одна форма;
    • Если phoneNumber, carrier, smsMessage доступны, а phoneNumber и carrier не пусты, то мы можем отправлять сообщение;
    • В сообщении не должны быть строки, превышающие 70 символов. Для разбиения сообщения на строки мы можем использовать функцию wordwrap;
    • phoneNumber и carrier конкатенируются для того, чтобы сформировать адрес получателя;
    • Если данные не прошли валидацию, то скрипт выдаст сообщение “Заполните все поля”;
    • В конце концов функция mail вернёт нам истину или ложь. Результат мы помещаем в переменную $result для дальнейшей проверки.

    Запомните, что mail() возвращает результат отправки сообщения и всё. Дошло письмо или нет — остаётся неизвестным.

    Финальный код

    Проблемы, которые могли у вас возникнуть

    Ошибки на локальном хосте

    Для того, чтобы пользоваться функцией mail у вас должен быть настроен локальный почтовый сервер. Если он у вас есть, то отправка сообщения произойдёт успешно. Если нет, то вы получите сообщение типа этого:

    Читайте также:  Samsung galaxy watch предзаказ

    Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:wampwwwsmsmail-test.php

    … для того, чтобы всё заработало, вам необходимо поставить mail сервер, но это не входит в рамки данного урока. Если у вас на локальной машине установлен XAMPP http://www.apachefriends.org/en/xampp.html, то вы с лёгкостью исправите ситуацию. Если же у вас WAMP, MAMP, LAMP, SAMP или OAMP, попробуйте установить Mercury Mail

    PHPMailer

    Для того, чтобы не возиться с локальным почтовым сервером, я предлагаю воспользоваться PHPMailer-ом http://phpmailer.worxware.com/. Ниже я приведу пример подключения PHPMailer-а к Gmail SMTP серверу, через который вы сможете отправлять сообщения.

    Данный код надо просто заинклудить в ваш скрипт:

    Данный код должен вывести что-то подобное:

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

    Вывод

    Конечно, существуют и другие техники отправки текстовых сообщений. Этот способ подойдёт тем, кто будет отправлять не больше 1000 SMS в месяц. Альтернативы данной системы:

      Использование SMS Gateway Prov >Я надеюсь у меня получилось осветить тему отправки SMS сообщений через PHP. Надеюсь урок вам понравился. Спасибо за внимание.

    Данный урок подготовлен для вас командой сайта ruseller.com
    Источник урока: www.net.tutsplus.com/tutorials/php/how-to-send-text-messages-with-php/
    Перевел: Станислав Протасевич
    Урок создан: 23 Февраля 2011
    Просмотров: 136400
    Правила перепечатки

    5 последних уроков рубрики "PHP"

    Фильтрация данных с помощью zend-filter

    Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.

    Контекстное экранирование с помощью zend-escaper

    Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

    Подключение Zend модулей к Expressive

    Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

    Совет: отправка информации в Google Analytics через API

    Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

    Подборка PHP песочниц

    Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

    Ссылка на основную публикацию
    Adblock detector