milter-protocol 3 milter managerライブラリ
milter-protocol

## 概要

    #define             MILTER_CHUNK_SIZE
    enum                MilterCommand;
    enum                MilterSocketFamily;
    enum                MilterReply;
    enum                MilterStatus;
    enum                MilterMacroStage;

## 説明

## 詳細

### MILTER_CHUNK_SIZE

    #define MILTER_CHUNK_SIZE 65535

MILTER_CHUNK_SIZE

### enum MilterCommand

    typedef enum {
        MILTER_COMMAND_ABORT =			'A', /* Abort */
        MILTER_COMMAND_BODY =			'B', /* Body chunk */
        MILTER_COMMAND_CONNECT =			'C', /* Connection information */
        MILTER_COMMAND_DEFINE_MACRO =		'D', /* Define macro */
        MILTER_COMMAND_END_OF_MESSAGE =		'E', /* final body chunk (End) */
        MILTER_COMMAND_HELO =			'H', /* HELO/EHLO */
        MILTER_COMMAND_QUIT_NEW_CONNECTION = 'K', /* QUIT but
                                                            new connection follows */
        MILTER_COMMAND_HEADER =			'L', /* Header */
        MILTER_COMMAND_ENVELOPE_FROM =		'M', /* MAIL from */
        MILTER_COMMAND_END_OF_HEADER =		'N', /* end of header */
        MILTER_COMMAND_NEGOTIATE =			'O', /* Option negotiation */
        MILTER_COMMAND_QUIT =			'Q', /* QUIT */
        MILTER_COMMAND_ENVELOPE_RECIPIENT =		'R', /* RCPT to */
        MILTER_COMMAND_DATA =			'T', /* DATA */
        MILTER_COMMAND_UNKNOWN =			'U'  /* Any unknown command */
    } MilterCommand;

`MILTER_COMMAND_ABORT`

`MILTER_COMMAND_BODY`

`MILTER_COMMAND_CONNECT`

`MILTER_COMMAND_DEFINE_MACRO`

`MILTER_COMMAND_END_OF_MESSAGE`

`MILTER_COMMAND_HELO`

`MILTER_COMMAND_QUIT_NEW_CONNECTION`

`MILTER_COMMAND_HEADER`

`MILTER_COMMAND_ENVELOPE_FROM`

`MILTER_COMMAND_END_OF_HEADER`

`MILTER_COMMAND_NEGOTIATE`

`MILTER_COMMAND_QUIT`

`MILTER_COMMAND_ENVELOPE_RECIPIENT`

`MILTER_COMMAND_DATA`

`MILTER_COMMAND_UNKNOWN`

MilterCommand

### enum MilterSocketFamily

    typedef enum {
        MILTER_SOCKET_FAMILY_UNKNOWN = 'U',
        MILTER_SOCKET_FAMILY_UNIX =		'L',
        MILTER_SOCKET_FAMILY_INET =		'4',
        MILTER_SOCKET_FAMILY_INET6 = '6'
    } MilterSocketFamily;

`MILTER_SOCKET_FAMILY_UNKNOWN`

`MILTER_SOCKET_FAMILY_UNIX`

`MILTER_SOCKET_FAMILY_INET`

`MILTER_SOCKET_FAMILY_INET6`

MilterSocketFamily

### enum MilterReply

    typedef enum {
        MILTER_REPLY_ADD_RECIPIENT =		'+', /* add recipient */
        MILTER_REPLY_DELETE_RECIPIENT =	'-', /* remove recipient */
        /* add recipient (incl. ESMTP args) */
        MILTER_REPLY_ADD_RECIPIENT_WITH_PARAMETERS ='2',
        /* 421: shutdown (internal to MTA) */
        MILTER_REPLY_SHUTDOWN =			'4',
        MILTER_REPLY_ACCEPT =			'a', /* accept */
        MILTER_REPLY_REPLACE_BODY =			'b', /* replace body (chunk) */
        MILTER_REPLY_CONTINUE =			'c', /* continue */
        MILTER_REPLY_DISCARD =			'd', /* discard */
        /* change envelope sender (from) */
        MILTER_REPLY_CHANGE_FROM =			'e',
        /* cause a connection failure */
        MILTER_REPLY_CONNECTION_FAILURE =		'f',
        MILTER_REPLY_ADD_HEADER =			'h', /* add header */
        MILTER_REPLY_INSERT_HEADER =		'i', /* insert header */
        /* set list of symbols (macros) */
        MILTER_REPLY_SET_SYMBOL_LIST =		'l',
        MILTER_REPLY_CHANGE_HEADER =		'm', /* change header */
        MILTER_REPLY_PROGRESS =			'p', /* progress */
        MILTER_REPLY_QUARANTINE =			'q', /* quarantine */
        MILTER_REPLY_REJECT =			'r', /* reject */
        MILTER_REPLY_SKIP =				's', /* skip */
        MILTER_REPLY_TEMPORARY_FAILURE =		't', /* tempfail */
        MILTER_REPLY_REPLY_CODE =			'y'  /* reply code etc */
    } MilterReply;

`MILTER_REPLY_ADD_RECIPIENT`

`MILTER_REPLY_DELETE_RECIPIENT`

`MILTER_REPLY_ADD_RECIPIENT_WITH_PARAMETERS`

`MILTER_REPLY_SHUTDOWN`

`MILTER_REPLY_ACCEPT`

`MILTER_REPLY_REPLACE_BODY`

`MILTER_REPLY_CONTINUE`

`MILTER_REPLY_DISCARD`

`MILTER_REPLY_CHANGE_FROM`

`MILTER_REPLY_CONNECTION_FAILURE`

`MILTER_REPLY_ADD_HEADER`

`MILTER_REPLY_INSERT_HEADER`

`MILTER_REPLY_SET_SYMBOL_LIST`

`MILTER_REPLY_CHANGE_HEADER`

`MILTER_REPLY_PROGRESS`

`MILTER_REPLY_QUARANTINE`

`MILTER_REPLY_REJECT`

`MILTER_REPLY_SKIP`

`MILTER_REPLY_TEMPORARY_FAILURE`

`MILTER_REPLY_REPLY_CODE`

MilterReply

### enum MilterStatus

    typedef enum {
        MILTER_STATUS_DEFAULT,
        MILTER_STATUS_NOT_CHANGE,
        MILTER_STATUS_CONTINUE,
        MILTER_STATUS_REJECT,
        MILTER_STATUS_DISCARD,
        MILTER_STATUS_ACCEPT,
        MILTER_STATUS_TEMPORARY_FAILURE,
        MILTER_STATUS_NO_REPLY,
        MILTER_STATUS_SKIP,
        MILTER_STATUS_ALL_OPTIONS,
        MILTER_STATUS_PROGRESS,
        MILTER_STATUS_ABORT,
        MILTER_STATUS_QUARANTINE,
        MILTER_STATUS_STOP,
        MILTER_STATUS_ERROR
    } MilterStatus;

`MILTER_STATUS_DEFAULT`

`MILTER_STATUS_NOT_CHANGE`

`MILTER_STATUS_CONTINUE`

`MILTER_STATUS_REJECT`

`MILTER_STATUS_DISCARD`

`MILTER_STATUS_ACCEPT`

`MILTER_STATUS_TEMPORARY_FAILURE`

`MILTER_STATUS_NO_REPLY`

`MILTER_STATUS_SKIP`

`MILTER_STATUS_ALL_OPTIONS`

`MILTER_STATUS_PROGRESS`

`MILTER_STATUS_ABORT`

`MILTER_STATUS_QUARANTINE`

`MILTER_STATUS_STOP`

`MILTER_STATUS_ERROR`

MilterStatus

### enum MilterMacroStage

    typedef enum {
        MILTER_MACRO_STAGE_CONNECT = 0,
        MILTER_MACRO_STAGE_HELO = 1,
        MILTER_MACRO_STAGE_ENVELOPE_FROM = 2,
        MILTER_MACRO_STAGE_ENVELOPE_RECIPIENT = 3,
        MILTER_MACRO_STAGE_DATA = 4,
        MILTER_MACRO_STAGE_END_OF_MESSAGE = 5,
        MILTER_MACRO_STAGE_END_OF_HEADER = 6
    } MilterMacroStage;

`MILTER_MACRO_STAGE_CONNECT`

`MILTER_MACRO_STAGE_HELO`

`MILTER_MACRO_STAGE_ENVELOPE_FROM`

`MILTER_MACRO_STAGE_ENVELOPE_RECIPIENT`

`MILTER_MACRO_STAGE_DATA`

`MILTER_MACRO_STAGE_END_OF_MESSAGE`

`MILTER_MACRO_STAGE_END_OF_HEADER`

MilterMacroStage