In een recent project werd mij gevraagd een oplossing te bedenken om sms-berichten te verzenden als premiumfunctie op de lidmaatschapssite van een klant. Dit is niet iets wat ik ooit eerder had gedaan, maar ik dacht dat ik alle informatie die ik had verzameld zou compileren in één eenvoudige tutorial voor diegenen die hetzelfde willen doen
De gratis optie - e-mail
Als u het nog niet wist, kunnen sms-berichten eigenlijk via e-mail worden verzonden naar de meeste mobiele telefoonaanbieders. Ik ben bijvoorbeeld een klant van AT&T. Om mezelf een sms-bericht te sturen zonder een telefoon, kon ik gmail openen en een e-mail sturen naar: ik zou het sms-bericht ontvangen zoals elk ander bericht.
Het toepassen van dit op PHP is eenvoudig genoeg in termen van daadwerkelijke code. De e-mailfunctie zal heel goed werken. Als u uw nummer bij de hand hebt en weet welke provider het nummer gebruikt, kunt u de mobiele provider hier opzoeken. Om een bericht naar mezelf te sturen, was het zo eenvoudig als:
$ number = "999-999-9999"; $ carrier = "@ txt.att.net"; $ message = "Dit is een tekst"; $ sent = mail ("$ carrier", 'Test', $ message); echo $ verzonden? "Mail sent": "Mail NIET verzonden"; // mail (e-mailadres, onderwerp, hoofdtekst); // het onderwerp is niet vereist en kan desgewenst leeg worden gelaten
Dit kan echter dilemna's veroorzaken. Het vereist dat u zowel het nummer als de mobiele provider kent. Met nummerportabiliteit kan de mobiele telefoonaanbieder veranderen, en tenzij een gebruiker u op de hoogte brengt van deze informatie, zou u op geen enkele manier kunnen weten dat hun aanbieder is gewijzigd. Deze optie was gewoon niet haalbaar voor ons, omdat we het nodig hadden om foutloos te werken, ongeacht of ze van provider veranderden of wat het geval ook was. Als we het nummer hadden, is dat alle informatie die we nodig hebben. De gebruiker vragen om meer informatie bij te houden dan dat up-to-date was teveel gevraagd.
Ik zag dit als een handige manier om sms-berichten te verzenden als ik gewoon een soort meldingservice voor mezelf wilde bouwen. dat wil zeggen als een van mijn dagelijkse cron-scripts faalde, iets in die richting. Dit is geen schaalbare betrouwbare oplossing voor elke soort oplossing die groter is dan slechts enkele gebruikers.
De betaalde optie - SMS-gateways
Er zijn talloze sms-gateways beschikbaar met verschillende prijspunten en API's. SMS-gateways zijn niet gratis, maar bieden een veiligere en vertrouwde manier om de klus te klaren. Ik herinnerde me dat ik ongeveer een jaar geleden wat onderzoek naar dit onderwerp had gedaan en de naam Twilio bleef hangen. Zij zijn wie ik ben gaan gebruiken en een snelle en eenvoudige tutorial is hieronder. Ze kosten 1 cent per sms, niet de goedkoopste, maar zeer redelijk voor wat we probeerden te bereiken.
Een sms-bericht verzenden met Twilio
Je hebt eerst een account bij hen nodig, dus meld je aan. U krijgt een gebruikers-ID en een authenticatietoken die u kunt aansluiten op de juiste variabelen hieronder. Download vervolgens de officiële Twilio PHP-bibliotheek vanaf hier.
// voeg de officiële PHP-bibliotheek van Twilio toe, inclusief 'Services / Twilio.php'; $ accountid = "#######"; $ token = "#######"; // declareer een nieuw exemplaar van de twilio-serviceklasse $ client = new Services_Twilio ($ AccountSid, $ AuthToken); $ mynumber = "###########"; $ to = "##########"; $ body = "dit is een sms"; $ client-> account-> sms_messages-> create ($ from, $ to, $ body); //voila! bericht verzonden
Voor elke hoeveelheid schaal, zou ik aanraden om een gateway zoals Twilio te gebruiken. U hoeft zich geen zorgen te maken over het bijhouden van de koerier en mijn ervaring is dat ze uiterst betrouwbaar zijn. Eventuele feedback of suggesties, laat het me weten in de reacties hieronder.