웹 사이트에 SMS 문자 메시지 기능을 추가하는 방법


57

웹 응용 프로그램에서 가입 한 특정 이벤트에 대해 사람들에게 전자 메일 및 SMS를 통해 미리 알림을 보내는 기능을 추가하고 싶습니다. 이메일 부분은 어렵지 않지만 SMS 메시지를 보내기위한 좋은 솔루션을 어디에서 찾을 수 있는지 궁금합니다.

사람들이 CONFIRM 또는 CANCEL 유형의 메시지로 응답 할 수 있도록이 솔루션이 내 웹 응용 프로그램과의 양방향 SMS 통신을 허용 한 경우에도 도움이됩니다.

누구든지 이와 같은 것을 구현 했습니까? 누구나 좋은 도구를 알고 있습니까?

편집 : 나는 이것이 "이 고양이를 껍질을 벗기는 많은 방법"유형의 질문이라는 것을 깨달았습니다. 그래서 나는 그것을 커뮤니티 위키로 바꿨습니다.


+1, 12 가지 단방향 SMS API 제공 업체에 대해 알고 있지만 답장을 받으면 다시 게시하지 않습니다.
Tim Post

이 질문에 대한 답변을 개선하기 위해이 질문에 현상금을 추가했습니다.
artlung

jessegavin, 최고의 답변을 고르고 싶을 경우, 내일 바운티가 끝납니다!
artlung

답변:


25

처음에 권장 한 서비스가 중단되었으므로이 답변을 몇 번 편집해야했습니다. 나는 새로운 업계 리더가 Twilio 라고 생각하며 우수한 API와 합리적인 가격을 가지고 있습니다. 고려할 가치가있는 몇 가지 대안은 Tropo , PlivoNexmo 입니다.

IMified 를 잠시 동안 사용하여 비슷한 작업을 수행했으며 제대로 작동하는 것으로 나타났습니다. HTTP POST로 SMS (또는 Twitter 및 IM 메시지)를 수신 할 수 있으며 웹 서버의 응답이 응답으로 전송됩니다. 또한 대화시작하고 메시지를 보내는 데 사용할 수있는 웹 서비스를 제공 합니다 .

다른 옵션을 찾고있는 동안 SMS를 보내고받는 API가있는 Zeep Mobile (참고 : Zeep Mobile은 더 이상 2013 년 8 월 1 일 현재는 작동하지 않을 것입니다)을 발견했습니다. 무료이며 광고 지원되거나 월별 요금으로 제공됩니다. 나는 그것을 시도하지 않았지만 꽤 흥미로워 보인다.

ClickATell 과 같은 SMS 게이트웨이를 사용할 수도 있습니다 .

행운을 빕니다!

편집 : StackOverflow에서 더 많은 제안이있는 질문을 찾았습니다. 일부는 오래되었습니다.


CLickATell도 사용하고 있으며 서비스에 만족합니다.
Alex

나는 Plivo 유료 서비스를 위해 차임 할 것입니다. 매우 좋습니다. 우리는 뛰어난 제품이지만 비용이 많이 드는 Twilio를 사용했습니다.
Frank

15

이메일을 통해이를 구현 한 친구가있었습니다. 나는 그가이 사이트가 권장 하는 것과 똑같은 방식으로 그것을했다고 생각 합니다 .

T-Mobile : phonenumber @ tmomail.net
Virgin Mobile : phonenumber @ vmobl.com
Cingular : phonenumber @ cingularme.com
AT & T : phonenumber@txt.att.net
스프린트 : phonenumber @ messaging.sprintpcs.com
Verizon : phonenumber @ vtext.com
Nextel : phonenumber @ messaging.nextel.com

어디 PHONENUMBER이 당신의 10 자리 전화 번호를 =


1
방금 테스트 한 결과 내 이동 통신사 (AT & T)는 FROM : [Sender Name], SUBJ : [Subject Line], MSG : [Message Contents]를 문자 메시지의 시작 부분에 추가했습니다. -이 방법으로 사용되는 (최소한) 21 자입니다. 나는 (적어도 나에게) 이것이 대부분의 대중 웹 응용 프로그램에는 용납되지 않을 것이라고 생각합니다.
jessegavin

3
@artlung en.wikipedia.org/wiki/List_of_carriers_providing_SMS_transitis 꽤 포괄적 인 목록입니다.
Yahel

7
en.wikipedia.org/wiki/List_of_SMS_gateways를 의미 하지만 감사합니다!
artlung

2
내 나라 (아르헨티나)에서는 이메일을 통해 수신 한 SMS를 지불해야합니다 (고객이
싫어할

1
운송 업체가 누구인지 어떻게 알 수 있습니까?
Adam

9

나는 음성으로 Twilio 를 사용 하고 있었고 매우 감동했습니다. 나는 그들의 SMS 시스템이 크게 다르지 않다고 확신합니다 . 이렇게하면 보낼 이메일 주소를 몰라도 이동 통신사에 보낼 수 있습니다 (시간이 지남에 따라 변경되는 것을 알았으므로).


그래서 당신은 그들의 API를 사용하고 있습니까? 어떻게 사용합니까?
artlung

1
PHP 스크립트를 통해 호출을 트리거하기 위해 음성 API를 사용하고 있습니다. 전화를 걸고 음성을 문자로 보내고 사용자의 응답을 수락하는 데 사용합니다.
Darryl Hein


4

과거에 고려한 다른 두 가지 옵션 :

Skype API
새로운 Skype API를 사용하여 SMS를 보내고받습니다. Twilio가 더 저렴하다고 생각하지만 Skype를 더 많은 국가에서 사용할 수 있습니다 (SMS를 수신하려는 경우)

서버에 전화
연결 SMS 게이트웨이 회사가 많이 청구하는 국가 (예 : 아르헨티나)에 거주하는 경우 전화를 구입하여 서버에 연결하는 것이 저렴할 수 있습니다 (물론 호스팅 환경에 따라 다름). 그런 다음 SMSToolkit 과 같은 소프트웨어를 사용 하여 전화와 상호 작용할 수 있습니다 .



2

Vidicom UK를 SMS 공급자로 사용하여 두 가지 방법으로 SMS 시스템을 작성했습니다 (아직 진행 중인지 확실하지 않음). 기본적으로 SMS 메시지를 보내고받을 수있는 HTTP 기반 API가 있습니다. 자세하게 설명하기에는 너무 복잡하지만 본질적으로 게이트웨이에서 수신되는 수신 메시지와 대기하고 게이트웨이로 전송되는 발신 메시지에 대한 데이터베이스 테이블이 있습니다.

기본적으로 들어오는 메시지를 구문 분석하여 CANCEL 또는 STOP과 같은 키워드가 포함되어 있는지 확인한 다음 그에 따라 메시지를 처리해야했습니다. 불행히도 많은 가비지 메시지가 나타납니다. 얼마나 많은 사람들이 SMS 메시지를 잘못된 번호로 전송하는지 놀라게 될 것입니다.


2

저렴한 대량 SMS 공급자가 필요한 경우 개발자 API를 사용하면 www.SourceSMS.com을 사용할 수 있습니다.이 서비스는 국제 적용 범위를 제공하며 웹 사이트에 다운로드하여 통합 할 수있는 스크립트가 있습니다.


1

또 다른 옵션은 다음과 같이 PHP의 메일 기능과 이동 통신사의 이메일 서버 목록을 사용하는 것입니다.

PHP 파일에 HTML 양식을 작성하십시오.

<select name="carrier" style="width: 130px" >
<option selected="" value="1">Verizon Wireless</option>
<option value="2">Alltel</option>
<option value="3">Boost Mobile</option>
<option value="4">Cingular</option>
<option value="5">Nextel</option>
<option value="6">Sprint</option>
<option value="7">T-Mobile</option>
<option value="8">Virgin Mobile</option>
<option value="9">AT&T</option>
</select>

그런 다음 메일을 보낼 위치를 설정하십시오.

if ($carrier == "1") {
    $email = "$to@vtext.com";
} elseif ($carrier == "2") {
    $email = "$to@message.alltel.com";
} elseif ($carrier == "3") {
    $email = "$to@myboostmobile.com";
} elseif ($carrier == "4") {
    $email = "$to@cingularme.com";
} elseif ($carrier == "5") {
    $email = "$to@messaging.nextel.com";
} elseif ($carrier == "6") {
    $email = "$to@messaging.sprintpcs.com";
} elseif ($carrier == "7") {
    $email = "$to@tmomail.net";
} elseif ($carrier == "8") {
    $email = "$to@vmobl.com";
} elseif ($carrier == "9") {
    $email = "$to@txt.att.net";
}

메일 발송 : ($ email, $ subject, $ msg, $ mailfrom을 정의하고 올바른 형식으로 입력을 삭제해야합니다.)

if (mail($email, $subject, $msg, $mailfrom)) {
    echo "<h4>Your Text Was Successfully Sent.</h4>";
    echo "<br />";
    if ($backurl == "") {
        echo "<a href='javascript:history.back(1);'>Back</a>";
    } else {
        echo "<a href='" . $backurl . "'>Back</a>";
    }
    echo "</body></html>";
} else {
    echo "<h4><b>Error Sending Message</b></h4><br>Can't send txt to $to. <br> Contact the site Administrator.";
}

PHP가 php.ini에 유효한 메일 설정을 가지고 있는지 확인하십시오. 궁금한 점이 있으면 물어보십시오.



0

많은 생산자와 서비스 제공 업체가 있습니다. Ozeki SMS Gateway를 알고 있습니다. 자체 gsm 모뎀, SMPP / UCP / CMD 또는 기타 공급자가있는 사내 솔루션을 원하는 경우 다음 URL이 도움이 될 수 있습니다. 결정을 내릴 때 첫 번째 질문 : 얼마나 많은 SMS를 보내거나 받으시겠습니까?

예제가 포함 된 HTTP SMS API .

SMS 기능 페이지를 설정하는 방법에 대한 ASP / ASP.NET 개발자 용 SMS API 및 PHP 개발자 용 예제는 유용한 정보를 제공 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.