Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

Як адпраўляць тэкставыя паведамленні з PHP

by
Difficulty:BeginnerLength:LongLanguages:

Belarusian (беларуская мова) translation by Alex Grigorovich (you can also view the original English article)

Тэкставыя паведамленні сталі надзвычай шырока распаўсюджаныя па ўсім свеце - да кропкі, дзе ўсё большая колькасць вэб-прыкладанняў, інтэгруюць SMS для паведамлення карыстальнікаў аб падзеях, продажаў або купоны непасрэдна праз свае мабільныя прылады.

У гэтым уроку мы разгледзім асновы адпраўкі тэкставых паведамленняў з PHP.


агляд

Адпраўка паведамленні тэкставае паведамленне (SMS) на самой справе даволі лёгка.

Ніжэй прыведзена спрошчаная схема таго, як паведамленне можа быць адпраўлена з вэб-дадатку да бесправадной прыладзе.

Мы зламаем гэта ўніз - адзін кавалак за адзін раз:

  • Паведамленне складаецца праз вэб-дадатак, якое захоўваецца і выконваецца на сэрвэры HTTP, а затым адпраўляецца праз Інтэрнэт («воблака») у выглядзе паведамленні электроннай пошты.
  • Лісты па электроннай пошце з дапамогай сэрвісу паведамленняў шлюза кароткага (SMS Gateway), які пераўтворыць паведамленне з паведамленні электроннай пошты ў паведамленне SMS.
  • Паведамленне SMS затым перадаецца ў Message Service Center Short (SMSC), які ўяўляе сабой сервер, які перадае дадзеныя на канкрэтныя мабільныя прылады.
  • Паведамленне, нарэшце, перадаецца па бесправадной сеткі да атрымальніка.

Большасць бесправадных сетак шлюз SMS, праз якія паведамленні электроннай пошты могуць быць адпраўлены ў выглядзе тэкставых паведамленняў на мабільныя прылады. Гэта добра, таму што, з пункту гледжання распрацоўніка, гэта, як правіла, свабодна, аднак, гэта, вядома, не бясплатны сэрвіс для канчатковага карыстальніка. Тарыфы па-ранейшаму прымяняюцца да атрымальніка паведамленняў і паведамленняў, адпраўленых па электроннай пошце будзе выстаўлены рахунак у выглядзе тэкставым паведамленні несетевых.


Адправіць SMS

Для адпраўкі SMS па электроннай пошце, вам звычайна патрабуецца толькі дзве рэчы:

  • Нумар тэлефона або унікальны ідэнтыфікатар мабільнага прылады, якое вы хочаце дасягнуць.
  • І даменнае імя бесправадной сеткі (многія з іх могуць быць знойдзеныя ў гэтым спісе пошты SMS-адрасы)

Наступнае пагадненне можа прытрымлівацца для большасці носьбітаў:

PHONENUMBER з'яўляецца тэлефонным нумарам мабільнага прылады, каб адправіць паведамленне, і domainName.com гэта адрас для SMS Gateway сеткі.

Для таго, каб адправіць тэкст г-ну прыкладу, вы можаце проста дадаць 3855550168@vtext.com ў любы паштовы кліент, увядзіце паведамленне і націсніце адправіць. Гэта будзе адправіць тэкставае паведамленне па нумары +1 (385) 555-0168 ў сетцы Verizon Wireless.

Напрыклад, я адправіць тэкставае паведамленне самому сабе з дапамогай Gmail.

Калі мой тэлефон атрымлівае паведамленне, ён павінен выглядаць так:

Даволі дзіўны!


mail Функцыя РНР

Давайце яшчэ далей. Выкарыстанне ў SMS Gateway, мы можам адправіць тэкставае паведамленне, выкарыстоўваючы функцыю mail ў PHP з дапамогай электроннай пошты. Функцыя mail мае наступную подпіс:

Вы можаце прачытаць пра гэта тут.

  • $to вызначаюць прыёмнік або прымачы паведамленні. Дапушчальныя прыклады ўключаюць у сябе:

    • user@example.com
    • user1@example.com, user2@example.com
    • Карыстальнік <user@example.com>
    • Карыстальнік1 <user1@example.com>, Карыстальнік2 <user2@example.com>
  • $subject Пры ўмове дастаткова самастойнага тлумачэнне; яна павінна быць радком, якая змяшчае патрабаваны аб'ект. Тым не менш, SMS не патрабуецца прадмет.
  • $message, каб паведамленне было дастаўлена. Як ужо згадвалася ў PHP кіраўніцтве, «кожны радок павінна быць аддзеленая з LF (\ п). Лініі не павінны быць больш, чым 70 знакаў.»

Каб паўтарыць папярэднюю функцыянальнасць, мы маглі б напісаць наступны PHP код:


Тэст-драйв

Давайце запусцім тэст з PHP, каб зрабіць гэта, што усё наладжана правільна, і што функцыя mail будзе, па сутнасці, адправіць тэкставае паведамленне. Выкарыстоўваючы наступны код, мы можам запусціць:

Калі мой тэлефон атрымлівае паведамленне, ён выглядае так:

Калі вы атрымліваеце паведамленне пра памылку, звярніцеся да падзелу пошуку і ліквідацыі няспраўнасцяў.

Як вы можаце бачыць на малюнку вышэй, паведамленне паказвае, што ў Gmail. Гэта таму, што я маршрутизировать ўсе мае выходныя паведамленні ад майго лакальнага сервера праз гэтую службу. На жаль, як гэты ліст, я не увянчаўся поспехам на змяненне з Form загалоўка, каб адлюстраваць дадатковы адрас. Здаецца, што загалоўкі электроннай пошты выдаляюцца і замяняюцца загалоўкамі, атрыманых шлюзам SMS. Калі хто-небудзь ведае абыходны шлях, калі ласка, пакіньце каментар, і хай астатнія з нас ведаюць!


даданне Usability

разметка

З асновамі з шляху, давайце гэтую ідэю і абгарнуць карыстацкі інтэрфейс вакол яго. Спачатку мы створым простую форму:

стыль

Далей мы будзем пасыпаць ў некаторых CSS:

Гэта дае нам наступную простую форму:


Скрыпт

Найбольш важнай часткай гэтага з'яўляецца PHP скрыпт. Мы напішам, што крыху кода ў цяперашні час:

  • Сцэнар першы правярае, калі форма была адпраўлена.
  • Калі так, то ён правярае, былі адпраўленыя зменныя PHONENUMBER, carrier і SMSMessage. Гэта карысна ў тым выпадку, калі можа быць больш за адну форма на старонцы.
  • Калі PHONENUMBER, carrier і SMSMessage даступныя і PHONENUMBER і carrier ня пустыя, гэта добра, каб паспрабаваць адправіць паведамленне.
  • Аргумент паведамленне ў функцыі mail павінна быць 70 сімвалаў у даўжыню ў кожнай радку. Можна здрабніць паведамленне ў 70 сімвалаў кавалкі з дапамогай функцыі WordWrap.
  • PHONENUMBER і carrier счапляюцца, а затым адпраўляецца паведамленне з дапамогай функцыі mail.
  • Калі дадзеныя адсутнічаюць ці яно не можа быць пацверджана, сцэнар проста вяртае не ўся інфармацыя была прадстаўлена.
  • Нарэшце, mail вяртае лагічнае значэнне, якое паказвае, ці быў ён паспяховым ці не. Значэнне захоўваецца ў $result у выпадку, калі мне трэба, каб пераканацца, што паведамленне было адпраўлена на самай справе.

Заўвага: Метад mail толькі апавяшчае Ці адпраўлена паведамленне ці не. Гэта не дае магчымасць праверыць, каб пераканацца, што паведамленне было паспяхова атрымана серверам атрымальніка або паштовай скрыняй.


Фінальны код


пошук няспраўнасцяў

Localhost Памылка

Для таго, каб выкарыстоўваць функцыю mail, вы павінны мець працуе паштовы сервер. Калі вы выкарыстоўваеце гэта на вэб-хостынгу, вы, верагодна, добра. Але калі вы не ведаеце, я рэкамендую размаўляць з адміністратарам. Гэта таксама справядліва і для асабістых машын. Так што калі вы атрымліваеце памылкі, як ..

... вам прыйдзецца ўсталяваць і наладзіць паштовы сервер. Гэта выходзіць за рамкі дадзенага кіраўніцтва. Тым не менш, калі вы працуеце на лакальным кампутары, перамыкаючыся на нешта накшталт XAMPP можа вырашыць гэтую праблему. Акрамя таго, паспрабуйце ўсталяваць Mercury пошту разам з WAMP, MAMP або на лямпе (або SAMP або OAMP і г.д.) сістэмы (што вельмі шмат «АМП»).

PHPMailer

Іншы варыянт (які з'яўляецца метад, які я аддаю перавагу), каб выкарыстоўваць PHPMailer. Ніжэй прыведзены прыклад таго, як выкарыстоўваць PHPMailer для падлучэння да SMTP-серверу Gmail і адправіць паведамленне.

З яго дапамогай так жа проста, як якое ўключае ў сябе клас у сцэнары.

Гэта павінна надрукаваць што-то ўздоўж ліній:

Гэта можа заняць крыху больш, каб усталяваць злучэнне ў залежнасці ад сітуацыі. Калі вы плануеце выкарыстоўваць Gmail, Google прадставіў інфармацыю пра падключэнне. Калі вы плануеце выкарыстоўваць Gmail, Google прадставіў інфармацыю пра падключэнне.


выснову

Ёсць мноства спосабаў, каб выканаць задачу адпраўкі SMS праз вэб-дадатак. Гэты метад сапраўды прызначаны для нізкага аб'ёму абмен паведамленняў (хутчэй за ўсё менш, за 1000 тэкставых паведамленняў у месяц) і распрацоўшчыкаў, каб іх ногі мокрымі без спараджэння з наяўных грошай. Іншыя варыянты ўключаюць у сябе:

  • Выкарыстанне пастаўшчыка SMS шлюз

    • Выкананне пошуку Google будзе вяртаць мноства варыянтаў.
    • Большасць правайдэраў SMS шлюз ўключаюць у сябе API для адпраўкі паведамленняў праз вэб-дадатак.
    • Звычайна вы можаце падпісацца на паслугу па разумнай цане, калі вы плануеце адпраўку па меншай меры, 1000 SMS-паведамленні ў месяц.
    • Вы можаце арандаваць кароткі нумар кода.
  • Выкарыстанне GSM мадэма

    • Гэта можа быць дарагім і павольным спосабам зрабіць гэта, так як вы павінны купіць мадэм і ёсць кантракт з бесправадной сеткай
    • Вы таксама павінны выкарыстоўваць набор каманд AT (Hayes).
  • Выкарыстоўвайце прамое падключэнне да бесправадной сеткі, што запатрабуе некалькі моцных перамоваў і цэлай кучы грошай.

Гэта кіраўніцтва ні ў якой меры ўсёабдымнага агляду адпраўкі тэкставых паведамленняў з PHP; але гэта павінна вам пачаць! Я спадзяюся, што гэты ўрок быў для вас цікавасць. Вялікае вам дзякуй за чытанне!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.