ver.1サポートサイト


選んだ人だけにメール配信

最終更新日:2023年02月22日

DB内のデータから会員一覧を取得し、選んだ人のみにメール配信を行うサンプルプログラムです。

本サンプルプログラムは内部呼出し(スパイラル内部で動作させる場合)を想定しておりますので、外部呼出しでは利用することはできません。

サンプルプログラム

<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=OFF NAME=TEST --> ?>
<?php

//APIトークンを指定します
//アカウント内APIを利用する場合はアカウント内APIの設定を「ON」に変更いただき、
//「$SPIRAL->setApiTokenTitle("");」の記述を削除ください。

$SPIRAL->setApiTokenTitle("");

// DBから会員一覧を取得する
$memberdb = $SPIRAL->getDataBase("study_member");
$memberdb->addSelectFields("id", "member_mail", "member_name");
$memberSearchResult = $memberdb->doSelect();
?>
<!DOCTYPE html>

<head>
    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

<body>
    メールを送信したい方を選択して、送信ボタンを押してください。
    <form action="" method="post">
        <table border="1">
            <tr>
                <th>送信</th>
                <th>id</th>
                <th>メールアドレス</th>
                <th>名前</th>
            </tr>
            <?php

            // メール送信先一覧
            $sendAddrs = $_REQUEST["send"];

            // 送信先が1件の場合は配列にならないので配列にする
            if ($sendAddrs != null && !is_array($sendAddrs)) {
                $sendAddrs = array($_REQUEST["send"]);
            }

            // 送信
            if ($sendAddrs != null && count($sendAddrs) > 0) {

                // スパイラルAPIサーバと通信するインスタンスを作成します。
                $api_communicator = $SPIRAL->getSpiralApiCommunicator();
                $api_communicator->setNoSsl();

                // メールを配信するリクエストを作成します。
                $request = new SpiralApiRequest();
                $request->put("rule_id", 29);
                $request->put("ids", $sendAddrs);
                $response = $api_communicator->request("deliver_express2", "sampling", $request);
                if ($response->isSuccess()) {
                    echo "送信しました。<br>\n";
                } else {
                    echo "送信に失敗しました。<br>\n";
                }
            }
            ?>
            <?php

            // 会員一覧表示
            $memberCount = $memberSearchResult["count"];
            $memberList = $memberSearchResult["data"];
            foreach ($memberList as $member) {
                echo "<tr>\n";
                echo "<td> <input type='checkbox' name='send' value='" . htmlspecialchars($member["id"], ENT_QUOTES) . "'>";
                echo "<td>" . htmlspecialchars($member["id"], ENT_QUOTES) . "</td>\n";
                echo "<td>" . htmlspecialchars($member["member_mail"], ENT_QUOTES) . "</td>\n";
                echo "<td>" . htmlspecialchars($member["member_name"], ENT_QUOTES) . "</td>\n";
                echo "</tr>\n";
            }
            ?>
        </table>
        <input type="submit" value="メール送信">
    </form>
</body>

</html>