@Override
	public List<Message> make(Message oMsg, Parse parse) {
		
		ArrayList<Message> sMsgs = new ArrayList<Message>();
		
	    // 送信許可
		AuthorizeSender as = new AuthorizeSenderImpl(parse.getDomBundle(), parser, oMsg.getSender());
		if (!as.isAuthorized()) {
			MakeWarning mw = new MakeWarningImpl();
			sMsgs.add(mw.makeWarningMessage(oMsg, as.getUnauthorizedRules()));
			return sMsgs;
		}
		
		// 通常
		DatabaseDao db = new DatabaseDaoImpl(parse.getDomBundle());
		ResultSet rs;
		ArrayList<String> finalrecipients = new ArrayList<String>();
		try {
			rs = db.read(parser.getQuery(), parser.getParas().listIterator());

			while (rs.next())
				finalrecipients.add(rs.getString(1));
			rs.close();
			db.close();

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		for (int i = 0; i < finalrecipients.size(); i++) {
			Message sMsg = new Message();

			sMsg.setSender(oMsg.getSender());
			sMsg.setRecipient(finalrecipients.get(i));
			for (int k = 0; k < oMsg.getHeader().size(); k++) {
				sMsg.addHeader(oMsg.getHeader().get(k));
			}
			sMsg.setSubject(oMsg.getSubject());
			for (int j = 0; j < oMsg.getBody().size(); j++) {
				sMsg.addBody(oMsg.getBody().get(j));
			}
			sMsgs.add(sMsg);
		}
		return sMsgs;
	}