メール送信予約(一斉メール配信)

サンプルプログラム PHP

            
            <?php
            // 接続先URLのドメイン(●の部分)
            // https://●●●●●/■■■■■/api/index.php?ac=CreateNewMail
            // ^^^^^^^^^^
            $domain = '★★★★★★';
            
            // 接続先URLのログインURL(■の部分)
            // https://●●●●●/■■■■■/api/index.php?ac=CreateNewMail
            // ^^^^^^^^^^
            $login_url = '★★★★★★';
            
            // パスワード(API連携接続用パスワード)
            $transport_passwd = '★★★★★★';
            
            // CSVファイル ※直接テキスト情報を送信します。
            $sendAddress  = "メールアドレス,お名前,性別\r\n";
            $sendAddress .= "test-0001@example.com,テスト太郎,男\r\n";
            $sendAddress .= "test-0002@example.com,テスト花子,女\r\n";
            $sendAddress .= "test-0003@example.com,テスト一郎,男\r\n";
            
            // FROMアドレス
            $from_address = "★★★★★★";
            $from_name = '★★★★★★';
            
            // 件名
            $subject = '★★★★★★';
            
            // 本文(テキストパート)
            $text_part = '★★★★★★';
            
            // 本文(HTMLパート)
            $html_part = '★★★★★★';
            
            // 予約種別
            $schedule_type = '★';
            
            
            // CSVファイルの文字コード(1:UTF-8、2:Shift-JIS、3:EUC-JP のいずれかを指定してください。)
            $charset = '★';
            
            // リスト名
            $list_name = '★★★★★★';
            
            // 添付ファイル01
            $attach_file_01 = '★★★★★★';
            
            // レポートメールの送信(0:送信しない、1:送信する、2:エラー時のみ送信 のいずれかを指定してください。)
            $report_option = '★';
            
            $errno = 0;
            $errstr = 0;
            
            $postDataArray = array();
            $postDataArray[] = "---attached\r\n";
            $postDataArray[] = "Content-Disposition: form-data; name=\"transport_password\"\r\n\r\n" . $transport_passwd . "\r\n";
            $postDataArray[] = "---attached\r\n";
            $postDataArray[] = "Content-Disposition: form-data; name=\"charset\"\r\n\r\n" . $charset . "\r\n";
            $postDataArray[] = "---attached\r\n";
            $postDataArray[] = "Content-Disposition: form-data; name=\"list_name\"\r\n\r\n" . $list_name . "\r\n";
            $postDataArray[] = "---attached\r\n";
            $postDataArray[] = "Content-Disposition: form-data; name=\"from_address\"\r\n\r\n" . $from_address . "\r\n";
            $postDataArray[] = "---attached\r\n";
            $postDataArray[] = "Content-Disposition: form-data; name=\"from_name\"\r\n\r\n" . $from_name . "\r\n";
            $postDataArray[] = "---attached\r\n";
            $postDataArray[] = "Content-Disposition: form-data; name=\"subject\"\r\n\r\n" . $subject . "\r\n";
            $postDataArray[] = "---attached\r\n";
            $postDataArray[] = "Content-Disposition: form-data; name=\"text_part\"\r\n\r\n" . $text_part . "\r\n";
            $postDataArray[] = "---attached\r\n";
            $postDataArray[] = "Content-Disposition: form-data; name=\"html_part\"\r\n\r\n" . $html_part . "\r\n";
            $postDataArray[] = "---attached\r\n";
            $postDataArray[] = "Content-Disposition: form-data; name=\"schedule_type\"\r\n\r\n" . $schedule_type . "\r\n";
            $postDataArray[] = "---attached\r\n";
            $postDataArray[] = "Content-Disposition: form-data; name=\"report_option\"\r\n\r\n" . $report_option . "\r\n";
            $postDataArray[] = "---attached\r\n";
            
            // ----------------------------------------------------------------
            // CSVファイル(配信リスト)
            // ----------------------------------------------------------------
            if($sendAddress != "") {
              $postDataArray[] = "Content-Disposition: form-data; name=\"csvfile\"; filename=\"".$csvfile."\"\r\n";
              $postDataArray[] = "Content-Type: application/octet-stream\r\n\r\n";
              
              // テキストデータを直接読み込みます。
              $postDataArray[] = $sendAddress;
              
              $postDataArray[] = "\r\n";
              $postDataArray[] = "---attached\r\n";
            }
            
            // ----------------------------------------------------------------
            // 添付ファイルがある時使用してください。
            // ----------------------------------------------------------------
            if(file_exists($attach_file_01)) {
              $postDataArray[] = "Content-Disposition: form-data; name=\"attach_file_01\"; filename=\"".$attach_file_01."\"\r\n";
              $postDataArray[] = "Content-Type: application/octet-stream\r\n\r\n";
              $postDataArray[] = array($attach_file_01, filesize($attach_file_01));
            // ----------------------------------------------------------------
            // ★☆最後の項目は、---attachedの後に'--'を必ず付けてください☆★
            // ----------------------------------------------------------------
              $postDataArray[] = "---attached--\r\n";
            }
            
            
            $length = 0;
            
            foreach($postDataArray as $data) {
              $length += is_array($data) ? $data[1] : strlen($data);
            }
            
            $request = "POST /" . $login_url . "/api/index.php?ac=CreateNewMail HTTP/1.1\r\n";
            $request .= "Host: " . $domain . "\r\n";
            $headers = array(
              "Content-Type: multipart/form-data; boundary=-attached",
              "Connection: close",
              "Content-Length: " . $length
            );
            
            $request .= implode("\r\n", $headers) . "\r\n\r\n";
            
            $fp = fsockopen('ssl://' . $domain, 443, $errno, $errstr, 10);
            if (!$fp) {
              die("接続に失敗しました。\n");
            }
            fputs($fp, mb_convert_encoding($request, 'SJIS', 'UTF-8'));
            
            foreach($postDataArray as $data){
              
              // 添付ファイルが存在する場合、ファイルデータを送信します
              if(is_array($data)){
                $fpCsv = fopen($data[0], 'r');
                while(!feof($fpCsv)) {
                  fputs($fp, fread($fpCsv, 8192));
                }
                fclose($fpCsv);
                fputs($fp, "\r\n");
                unset($fpCsv);
              
              // 普段はこちらで送信
              }else{
                fputs($fp, $data);
              }
            }
            
            $httpheader = ""; // HTTPヘッダー
            $response = ""; // レスポンスデータ
            
            // HTTPヘッダの取得
            while (!feof($fp)) {
              $tmpResponse = fgets($fp, 4096);
              if (preg_match('/^(\r|\n)+$/x', $tmpResponse)) {
                break;
              }
              $httpheader .= $tmpResponse;
            }
            
            // 結果の取得
            while (!feof($fp)) {
              $response .= fgets($fp, 4096);
            }
            fclose($fp);
            
            switch ($charset) {
              case 1:
                $charsetStr = 'UTF-8';
                break;
            
              case 2:
                $charsetStr = 'Shift-JIS';
                break;
            
              case 3:
                $charsetStr = 'EUC-JP';
                break;
            }
            
            // レスポンスが文字化けする場合は、ご利用の環境にあわせて文字エンコーディングを変換してください。
            echo mb_convert_encoding($response, 'SJIS', $charsetStr) . "\n";
            ob_flush();
            ?>
               
                
            

クルメル関連サイト情報

  • 配配メール
  • メルラボ
  • メールディーラー
  • 楽楽販売
  • Pマーク