2016-07-12 8 views
-3

私はoracle pl/Sqlを通してSMSを送信する方法について知りたいと思います。私はoracle pl/Sqlを介してSMSを送信する実装について知りたいです

+0

SOは、特定のプログラミング問題に関する詳細な質問があります。 「私はこれをする必要があります、助けてください」のような質問は話題とはみなされません。 – Aleksej

+0

私が知っているように、pl/sqlプロシージャを使用してこれを行うことはできませんが、これを実装するためにoracle javaプロシージャを使用できます。 – Ming

+0

oracle dbパッケージutl_mailを使用してsms-gatewayに電子メールを送信できます。このsms-gatewayはこの電子メールをsmsに変換できるはずです。私はJavaのストアドプロシージャが必要とは思わない。 – RayCW

答えて

1

これは、私はあなたの石鹸の封筒、応答、IPウォレットなどを使用してそれを調整する必要がありますSMSサービスの石鹸APIを使用してSMSを送信することができますこの機能を使用していくつかのアイデアを与える必要があります 入力はXMLデータ封筒と一緒にパット - あなたはあなたのプロバイダとこれを調べる必要があります。電子メールとは異なり、あなたの接続

function send(message_data in varchar2) return varchar2 is 
/************************************************** 
* author: jareeq 
* use as you like 
***************************************************/ 
    resp    sys.xmltype; 
    http_req   utl_http.req; 
    http_resp  utl_http.resp; 
    soap_request  clob; 
    soap_respond  clob; 
    v_result   varchar2(4096); 
    v_buffer_varchar varchar2(4096); 

begin 
/* wallet for https con */ 
    UTL_HTTP.set_wallet('file:/xxx/xxx/xxx/wallets', '************'); 
    soap_request := '<your soap envelope here>'; 
    utl_http.set_response_error_check(TRUE); 
    http_req := utl_http.begin_request('https://<your service request>', 
            'POST', 'HTTP/1.1'); 
    utl_http.set_header(http_req, 'Content-Type', 
         'application/xop+xml; type=text/xml; charset=utf-8'); 
    utl_http.set_header(http_req, 'Content-Length', length(soap_request)); 
    utl_http.write_text(http_req, soap_request); 
    http_resp := utl_http.get_response(http_req); 

    begin 
    loop 
     utl_http.read_text(http_resp, v_buffer_varchar); 
     soap_respond := soap_respond || v_buffer_varchar; 
    end loop; 
    utl_http.end_response(http_resp); 
    exception 
    when utl_http.end_of_body then 
     utl_http.end_response(http_resp); 
    end; 
    utl_http.close_persistent_conns('<your connection ip>', 443); 
    resp  := sys.xmltype.createXML(soap_respond); 
    v_result := resp.extract('<your extraction path>') 
       .getStringVal(); 
    return replace(replace(v_result,chr(10)),chr(13)); 

exception 
    when utl_http.end_of_body then 
    utl_http.end_response(http_resp); 
    utl_http.close_persistent_conns('<your connection ip>', 443); 
    return replace(replace(v_result,chr(10)),chr(13)); 
end send; 
0

のためのあなたのユーザー近代的な神託あなたはIPとネットワークアクセスのためのACLについて保証する必要がある場合はもちろんだけでなく、暗号化

は、OracleがSMS経由でメッセージを送信するためのAPIを提供していません。ただし、UTL_HTTPを使用して、提供するAPIの種類に応じて、SMSゲートウェイに要求を送信できます。いくつかのHTTP、SOAP、Rest-style API、Email-to-SMSがあります。

個人的に私は自分のニーズに合ったオーストラリア(ClickSend)のローカルゲートウェイを使用しています。彼らは、UTL_HTTPを使って非常に簡単に呼び出せるRESTスタイルのAPIを提供しています。

まず、ニーズと予算に合ったゲートウェイを見つけます。それらはサービスの質も変化します.Tier2アグリゲーターだけなので、SMSの処理に時間がかかります。 Tier 1は、迅速な配信のために複数のモバイルキャリアと直接接続またはプレミアム契約を結んでいます。

関連する問題