Отправка смс через 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 ):

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

    Читайте также:  A4tech bt 630 black bluetooth

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

    Для рассылок посмотрите уже упомянутый 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 вещи:

    • Номер телефона или ID телефонного устройства на которое вы будете отправлять сообщение;
    • Домен беспроводной сети (их можно найти тут)

    Оно может выглядеть приблизительно так: 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 у вас должен быть настроен локальный почтовый сервер. Если он у вас есть, то отправка сообщения произойдёт успешно. Если нет, то вы получите сообщение типа этого:

    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

    Читайте также:  Как включить гарнитуру jabra

    … для того, чтобы всё заработало, вам необходимо поставить 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 Provider;
    • Через Google можно много такого найти;
    • SMS gateway providers предоставляют специальные API, которые будут использованы для отправки SMS через их веб-сервера;
    • Можете подобрать специальный пакет, который будет удовлетворять ваши SMS потребности;
    • Вы можете арендовать короткие номера;
  • Использование GSM модема:
    • Это более дорогой вариант, т.к. придётся покупать специальный модем и заключать контракт с какой-то беспроводной сетью;
    • Вам так же придётся использовать Hayes-команды;
    • Использование прямого подключения к беспроводной сети, потребует от вас заключение контракта и целую кучу денег.
    • Я надеюсь у меня получилось осветить тему отправки SMS сообщений через PHP. Надеюсь урок вам понравился. Спасибо за внимание.

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

      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 сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

      Ссылка на основную публикацию
      Определите разность фаз между двумя точками
      1. Определить разность фаз в пульсовой волне между двумя точками артерии, расположенными на расстоянии см друг от друга. Скорость пульсовой...
      О себе в инстаграмме примеры девушка
      К оформлению профиля в Инстаграме подходят с особым трепетом и вниманием. Часто возникает трудность и некоторые не знают, что написать...
      О чем снять влог
      Как делать влоги в домашних условиях Хотите завести личный дневник в интернете и думаете, на каком ресурсе его лучше всего...
      Определите ускорения грузов изображенных на рисунке
      2017-04-24 Определить ускорение каждого из тел в системе, изображенной на рис.. Нити нерастяжимы. Массой блоков и нитей можно пренебречь. Трения...
      Adblock detector