API概要
PHP版サンプル
/API/setを使用してメール配信の設定を行うサンプルです。
接続先ホスト名(example.com)および、接続時のIDとパスワード(login_id, password)につきましては適宜ご変更ください。
//APIへ送信するデータ //$_REQUESTの部分については、可能であれば$_POSTか$_GETを指定してください //今回はサンプルの為、汎用性を考えて$_REQUESTとします $post_data = array( "login_id" => "login@example.com", //ログインID "password" => "password", //ログインパスワード "subject" => $_REQUEST['subject'], //メールタイトル "body" => $_REQUEST['body'], //メール本文 "from_address" => $_REQUEST['from_address'], //Fromアドレス "from_txt" => $_REQUEST['from_txt'], //Fromテキスト "returnpath" => $_REQUEST['returnpath'], //メール返信先(エラー時) "auto_return" => $_REQUEST['auto_return'], //自動リターン集計 "replyto" => $_REQUEST['replyto'], //メール返信先 "start_sending" => $_REQUEST['start_sending'], //メール配信開始日時について "year" => $_REQUEST['year'], //メール配信日(年) "month" => $_REQUEST['month'], //メール配信日(月) "day" => $_REQUEST['day'], //メール配信日(日) "hour" => $_REQUEST['hour'], //メール配信日(時) "min" => $_REQUEST['min'] //メール配信日(分) ); //送信するファイル名のリスト $post_data_files = array('file', 'file_to_attach'); //APIのHostを設定 $api_host = "example.com"; //APIのPathを設定 $api_path = "/API/set"; //APIへ接続 $sp = fsockopen('ssl://' . $api_host, 443, $errno, $errstr, 30); //エラーチェック if(!$sp){ print $errno . "
" . $errstr; exit; } //boundary生成 $boundary = "-----" . md5(uniqid()); //header生成 $header = "POST " . $api_path . " HTTP/1.0\r\n"; $header .= "Host: " . $api_host . "\r\n"; $header .= "Content-type: multipart/form-data, boundary=" . $boundary . "\r\n"; $header .= "Referer: http://" . $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'] . "\r\n"; $header .= "Accept: */*\r\n"; //body生成 $body = ""; //テキストデータをAPIへ送信できるように変換 foreach ($post_data as $key => $val){ if((is_numeric($val) || is_string($val)) && $val !== ""){ $body .= "--" . $boundary . "\r\n"; $body .= "Content-Disposition: form-data; name=\"" . $key . "\"\r\n"; $body .= "\r\n" . $val . "\r\n"; $body .= "--" . $boundary . "\r\n"; } } //ファイルデータをAPIに送信できるよう変換 foreach ($post_data_files as $val){ if($_FILES[$val]['name']){ $body .= "--" . $boundary . "\r\n"; $body .= "Content-Disposition: form-data; name=\"" . $val . "\"; filename=\""; $body .= $_FILES[$val]['name'] . "\"\r\n"; $body .= "Content-Type: " . $_FILES[$val]['type'] . "\r\n\r\n"; $body .= "" . join("", file($_FILES[$val]['tmp_name'])) . "\r\n"; $body .= "--" . $boundary . "\r\n"; } } //送信データ末尾の区切り文字を追加 $body .= "--" . $boundary . "--\r\n"; $body .= "\r\n\r\n"; //ヘッダーにデータ部のサイズを追加 $header .= "Content-length: " . strlen($body) . "\r\n\r\n"; //データ送信 fputs($sp, $header); fputs($sp, $body); //データ受信 $buf = ""; $response = fgets($sp); if (substr_count($response, "200 OK") > 0){ while (!feof($sp)){ $buf = $buf . fread($sp, 4096); } }else{ print "データ受信に失敗しました"; exit; } //接続終了 fclose($sp); //結果XMLを取得 $result = substr($buf, strpos($buf, "\r\n\r\n")+4); //XMLをパースする $result_xml = simplexml_load_string($result); //結果を取得し表示 print "status:" . $result_xml->status . "
"; //ステータス print "code:" . $result_xml->code . "
"; //コード print "message:" . $result_xml->message . "
"; //メッセージ exit;