メール送信予約(一斉メール配信)
サンプルプログラム Java
package jp.co.rakus;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Hashtable;
import java.util.Map;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
public class CurumeruAPI {
public static void main(String args[]){
System.out.print(new CurumeruAPI().CreateNewMail());
}
///
/// メール配信予約
///
/// 結果メッセージ(Response)
public String CreateNewMail() {
String msg = "";
try {
/////////////////////////////
// POSTパラメータを用意
/////////////////////////////
Hashtable postParams = new Hashtable();
// 接続用パスワード
postParams.put("transport_password", "testpasswoed");
// 文字コード
postParams.put("charset", "1");
// Fromアドレス
postParams.put("from_address", "api-test@example.com");
// 差出人名
postParams.put("from_name", "テスト差出人");
// 件名
postParams.put("subject", "##__お名前__##さんへ (件名)");
// 本文
postParams.put("text_part", "テストメール(本文) ##__名前__##");
// 予約種別
postParams.put("schedule_type", "1");
// 配信リスト名
postParams.put("csvfile", "テスト配信リスト");
/////////////////////////////
// HTTPリクエストを用意
/////////////////////////////
URL urlobj = new URL("https://m.crmf.jp/XXXXXXXX/api/index.php?ac=CreateNewMail");
HttpsURLConnection http = (HttpsURLConnection) urlobj.openConnection();
http.setRequestMethod("POST");
http.setDoOutput(true);
// マルチパート送信の区切り(boundary)を設定
String boundary = "__boundary__xxx";
http.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
/////////////////////////////
// 送信データを作成
/////////////////////////////
StringBuffer sb = new StringBuffer();
for (Map.Entry e : postParams.entrySet()) {
sb.append("--" + boundary + "\r\n");
sb.append("Content-Disposition: form-data; name=\"" + e.getKey() + "\"\r\n\r\n" + e.getValue() + "\r\n");
}
// 配信リストを設定
String filePath = "C:\\Tool\\test.csv";
String listName = new File(filePath).getName();
sb.append("--" + boundary + "\r\n");
sb.append("Content-Disposition: form-data; name=\"csvfile\"; filename=\"" + listName + "\"\r\n");
sb.append("Content-Type: application/octet-stream");
sb.append("\r\n");
sb.append("\r\n");
// 配信リストを読み込み、送信データへ追記
File file = new File(filePath);
BufferedReader br = new BufferedReader(new FileReader(file));
String str;
while((str = br.readLine()) != null){
sb.append(str + "\r\n");
}
br.close();
// フッターを書き込み
sb.append("--" + boundary + "\r\n");
/////////////////////////////
// POST送信
/////////////////////////////
OutputStreamWriter os = new OutputStreamWriter(http.getOutputStream());
os.write(sb.toString());
os.flush();
os.close();
/////////////////////////////
// レスポンス取得
/////////////////////////////
InputStreamReader is = new InputStreamReader(http.getInputStream());
BufferedReader res = new BufferedReader(is);
String line;
while ((line = res.readLine()) != null)
{
msg += line + "\r\n";
}
res.close();
is.close();
} catch (Exception e) {
return e.getMessage();
}
return msg;
}
}