向存储在数据库中的多个电话号码发送 SMS

Posted

技术标签:

【中文标题】向存储在数据库中的多个电话号码发送 SMS【英文标题】:Sending SMS to multiple phone numbers stored in a database 【发布时间】:2019-12-20 08:56:56 【问题描述】:

我能够在我的项目中成功设置 twilio(我知道这个过程非常简单),但我正在寻找一种能够将 SMS 发送到存储在数据库中的电话号码列表的方法。请帮助我对编程很陌生,我知道这个问题对你们中的一些人来说可能听起来很傻,但我真的需要一些帮助。提前表示感谢。

下面是我在我的项目中使用的代码,现在我已经将它设置为使用 post 方法提取“to”电话号码。我想过让该字段提取数据库中的所有数据(从存储电话号码的特定列)并使用 mysql 将其吐在该字段中,并使用 ajax 脚本拆分每个数字,但是我该如何循环通过手机号码发送流程?或者如果有更简单的方法请告诉我,谢谢

            <?php
                require '../app/init.php';
                use Twilio\Rest\Client;

                $twilio_conn = new mysqli($twilio_host, $twilio_username, $twilio_password, $twilio_db) or die($twilio_conn->error());
                $twilio_result = $twilio_conn->query("SELECT phone_numbers FROM ctn") or die($twilio_conn->error);
                while ($row = $twilio_result->fetch_assoc()):
                    echo '<br><br><br>' . $row['phone_numbers'];
                endwhile;

                if(isset($_POST['submit']))
                    if(isset($_POST['number']) && isset($_POST['message']))
                        $client = new Client($config['account_sid'],$config['auth_token']);
                        $client->account->messages->Create($_POST['number'], ['from'=>$config['phone_number'], 'body'=>$_POST['message']]);
                        echo "<br><br><h3 class='text-center bg-success'>Message has been sent</h3>";
                    
                
            ?>


                <div class="container col-sm-4 col-sm-offset-2">
                    <form role="form" method="post">
                        <div class="form-group text-center">
                            <span>Text Message Mainframe</span><br><br>
                            <input name="number" type="tel" class="form-control" id="email" placeholder="Enter Phone Number to send to">
                        </div>
                        <div class="form-group">
                            <textarea name="message" id="message" cols="30" rows="4" class="form-control" placeholder="Message body"></textarea>
                        </div>

                        <input name="submit" type="submit" class="btn btn-primary btn-block" value="Send Message">
                    </form>
                </div>

【问题讨论】:

【参考方案1】:

假设 $phoneNumbers 是您要向其发送消息的电话号码数组。

        <?php
            require '../app/init.php';
            use Twilio\Rest\Client;

            $twilio_conn = new mysqli($twilio_host, $twilio_username, $twilio_password, $twilio_db) or die($twilio_conn->error());
            $twilio_result = $twilio_conn->query("SELECT phone_numbers FROM ctn") or die($twilio_conn->error);

            $phoneNumbers = $twilio_result->fetch_assoc()['phone_numbers'];

            if(isset($_POST['submit']))
                if(isset($_POST['number']) && isset($_POST['message']))
                    $client = new Client($config['account_sid'],$config['auth_token']);


            foreach($phoneNumbers as $phoneNumber)
            $client->account->messages->Create($phoneNumber, ['from'=>$config['phone_number'], 'body'=>$_POST['message']]);
            


          echo "<br><br><h3 class='text-center bg-success'>Message has been sent</h3>";
                
            
        ?>

【讨论】:

非常感谢 Jakub,这非常有帮助,现在我想不出的最后一点是如何将电话号码从我的表中获取到 $phoneNumbers 数组中,而不是获取数据硬编码。电话号码当前存储在 phone_numbers 列中 我认为这应该可行,但我不确定。请检查我编辑的答案并尝试一下。 很高兴能帮上忙 :)

以上是关于向存储在数据库中的多个电话号码发送 SMS的主要内容,如果未能解决你的问题,请参考以下文章

我们可以通过Android中的用户电话号码找到用户吗?

Twilio SMS 物理电话集成

访问电话簿中的联系人以获取 SMS 消息?

特定号码的SMS消息未显示在其他Android设备上

在 Cordova 中发送和阅读通过本机 SMS 应用程序发送的 SMS 内容

Amazon Cognito 未向我的应用程序用户发送 SMS 文本消息