API概要

Java版サンプル

/API/setを使用してメール配信の設定を行うサンプルです。

接続先ホスト名(example.com)および、接続時のIDとパスワード(login_id, password)につきましては適宜ご変更ください。

/**
 * 3mail API接続サンプルプログラム
 * 要 Jakarta Commons HttpClient4 (http://hc.apache.org/)
 *
 * @author 3hands dev Team
 * @copyright 3hands Inc.
 */

package mail_sample_java;

import java.io.*;
import java.nio.charset.Charset;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.InputSource;


/**
 * メインクラス
 *
 * @author 3hands dev Team
 */
public class Main {

    /**
     * コンストラクタ
     *
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception {
        new SendData().send();
    }
}

/**
 * APIへ接続及びデータ送信
 *
 * @author 3hands dev Team
 */
class SendData {

    /**
     * データ送信
     *
     * @throws Exception
     */
    public void send() throws Exception {

        //3mail APIへ接続
        final HttpClient client = new DefaultHttpClient();
        final HttpPost post = new HttpPost("http://example.com/API/set");
        final MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

        //送信文字コードを設定
        Charset charSet = Charset.forName("shift_jis");

        //送信データを設定
        entity.addPart("login_id", new StringBody("login_id"));
        entity.addPart("password", new StringBody("login_password"));
        entity.addPart("subject", new StringBody("メールタイトル", charSet));
        entity.addPart("body", new StringBody("メール本文", charSet));
        entity.addPart("from_address", new StringBody("from@example.com"));
        entity.addPart("start_sending", new StringBody("now"));

        //メールアドレスリストファイル登録
        FileBody file = new FileBody(new File("D:\\mail.zip"), "application/zip");
        entity.addPart("file", file);

        //データセット
        post.setEntity(entity);

        //データ送信し結果(XML形式)を取得
        HttpResponse response = client.execute(post);

        //XMLをパース
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document doc = builder.parse(new InputSource(new StringReader(EntityUtils.toString(response.getEntity()))));

        //結果を出力
        Element root = doc.getDocumentElement();

        String[] resultList = {"status", "code", "message", "valid", "error", "task_id"};

        for (String res : resultList){
            NodeList list = root.getElementsByTagName(res);
            Element element = (Element)list.item(0);
            System.out.println(res + "->" + new String(element.getFirstChild().getNodeValue().getBytes("SJIS"), "UTF-8"));
        }

        //コネクションを閉じる
        client.getConnectionManager().shutdown();
    }
}