MilterClientContext

MilterClientContext — milterプロトコルを処理します。

Functions

#define MILTER_CLIENT_CONTEXT_STATE_IN_MESSAGE_PROCESSING()
GQuark milter_client_context_error_quark ()
MilterClientContext * milter_client_context_new ()
gboolean milter_client_context_feed ()
gpointer milter_client_context_get_private_data ()
void milter_client_context_set_private_data ()
gboolean milter_client_context_set_reply ()
gchar * milter_client_context_format_reply ()
gboolean milter_client_context_add_header ()
gboolean milter_client_context_insert_header ()
gboolean milter_client_context_change_header ()
gboolean milter_client_context_delete_header ()
gboolean milter_client_context_change_from ()
gboolean milter_client_context_add_recipient ()
gboolean milter_client_context_delete_recipient ()
gboolean milter_client_context_replace_body ()
gboolean milter_client_context_progress ()
gboolean milter_client_context_quarantine ()
void milter_client_context_set_timeout ()
guint milter_client_context_get_timeout ()
void milter_client_context_set_state ()
MilterClientContextState milter_client_context_get_state ()
void milter_client_context_set_quarantine_reason ()
const gchar * milter_client_context_get_quarantine_reason ()
MilterClientContextState milter_client_context_get_last_state ()
void milter_client_context_set_status ()
MilterStatus milter_client_context_get_status ()
void milter_client_context_set_option ()
MilterOption * milter_client_context_get_option ()
void milter_client_context_set_socket_address ()
MilterGenericSocketAddress * milter_client_context_get_socket_address ()
MilterMessageResult * milter_client_context_get_message_result ()
void milter_client_context_set_message_result ()
void milter_client_context_reset_message_related_data ()
guint milter_client_context_get_n_processing_sessions ()
void milter_client_context_set_packet_buffer_size ()
guint milter_client_context_get_packet_buffer_size ()
void milter_client_context_set_mail_transaction_shelf_value ()
const gchar * milter_client_context_get_mail_transaction_shelf_value ()
GHashTable * milter_client_context_get_mail_transaction_shelf ()
void milter_client_context_clear_mail_transaction_shelf ()
void milter_client_context_mail_transaction_shelf_foreach ()

プロパティ

MilterClient * client Read / Write / Construct Only
MilterMessageResult * message-result Read / Write
MilterOption * option Read / Write
guint packet-buffer-size Read / Write
gchar * quarantine-reason Read / Write
MilterClientContextState state Read / Write
MilterStatus status Read / Write

シグナル

Types and Values

オブジェクト階層

    GEnum
    ├── MilterClientContextError
    ╰── MilterClientContextState
    GObject
    ╰── MilterAgent
        ╰── MilterProtocolAgent
            ╰── MilterClientContext

実装されたインターフェイス

MilterClientContext implements

説明

MilterClientContextは1つのmilterプロトコルセッションを処理します。これはMilterClientContextインスタンスは各milterプロトコルセッション毎に生成されるということです。

各milterプロトコルコマンドを処理するために、MilterClientContextのシグナルに接続します。MilterClientContextにはmilterプロトコルのイベントに対応したシグナルがあります。

NOTE: You will need to check whether the current state is message processing or not. You can use MILTER_CLIENT_CONTEXT_STATE_IN_MESSAGE_PROCESSING for it.

以下はシグナルに接続する例です。すべてのシグナルに接続して、各シグナルハンドラはイベント名を表示します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
static MilterStatus
cb_negotiate (MilterClientContext *context, MilterOption *option,
              gpointer user_data)
{
    g_print("negotiate\n");
    return MILTER_STATUS_ALL_OPTIONS;
}

static MilterStatus
cb_connect (MilterClientContext *context, const gchar *host_name,
            const struct sockaddr *address, socklen_t address_length,
            gpointer user_data)
{
    g_print("connect\n");
    return MILTER_STATUS_CONTINUE;
}

static MilterStatus
cb_helo (MilterClientContext *context, const gchar *fqdn, gpointer user_data)
{
    g_print("helo\n");
    return MILTER_STATUS_CONTINUE;
}

static MilterStatus
cb_envelope_from (MilterClientContext *context, const gchar *from,
                  gpointer user_data)
{
    g_print("envelope-from\n");
    return MILTER_STATUS_CONTINUE;
}

static MilterStatus
cb_envelope_recipient (MilterClientContext *context, const gchar *to,
                       gpointer user_data)
{
    g_print("envelope-recipient\n");
    return MILTER_STATUS_CONTINUE;
}

static MilterStatus
cb_data (MilterClientContext *context, gpointer user_data)
{
    g_print("data\n");
    return MILTER_STATUS_CONTINUE;
}

static MilterStatus
cb_header (MilterClientContext *context, const gchar *name, const gchar *value,
           gpointer user_data)
{
    g_print("header\n");
    return MILTER_STATUS_CONTINUE;
}

static MilterStatus
cb_end_of_header (MilterClientContext *context, gpointer user_data)
{
    g_print("end-of-header\n");
    return MILTER_STATUS_CONTINUE;
}

static MilterStatus
cb_body (MilterClientContext *context, const gchar *chunk, gsize length,
         gpointer user_data)
{
    g_print("body\n");
    return MILTER_STATUS_CONTINUE;
}

static MilterStatus
cb_end_of_message (MilterClientContext *context,
                   const gchar *chunk, gsize length,
                   gpointer user_data)
{
    g_print("end-of-message\n");
    return MILTER_STATUS_CONTINUE;
}

static MilterStatus
cb_abort (MilterClientContext *context, MilterClientContextState state,
          gpointer user_data)
{
    g_print("abort\n");
    return MILTER_STATUS_CONTINUE;
}

static MilterStatus
cb_unknown (MilterClientContext *context, const gchar *command,
            gpointer user_data)
{
    g_print("unknown\n");
    return MILTER_STATUS_CONTINUE;
}

static void
setup_context_signals (MilterClientContext *context)
{
#define CONNECT(name)                                                   \
    g_signal_connect(context, #name, G_CALLBACK(cb_ ## name), NULL)

    CONNECT(negotiate);
    CONNECT(connect);
    CONNECT(helo);
    CONNECT(envelope_from);
    CONNECT(envelope_recipient);
    CONNECT(data);
    CONNECT(header);
    CONNECT(end_of_header);
    CONNECT(body);
    CONNECT(end_of_message);
    CONNECT(abort);
    CONNECT(unknown);

#undef CONNECT
}

Functions

MILTER_CLIENT_CONTEXT_STATE_IN_MESSAGE_PROCESSING()

#define             MILTER_CLIENT_CONTEXT_STATE_IN_MESSAGE_PROCESSING(state)


milter_client_context_error_quark ()

GQuark
milter_client_context_error_quark (void);


milter_client_context_new ()

MilterClientContext *
milter_client_context_new (MilterClient *client);

Creates a new context object. Normally, context object is created by MilterClient and passed by “connection-established” signal.

Parameters

client

context用のMilterClientオブジェクト。

 

Returns

新しいMilterClientContextオブジェクト。


milter_client_context_feed ()

gboolean
milter_client_context_feed (MilterClientContext *context,
                            const gchar *chunk,
                            gsize size,
                            GError **error);

Feeds a chunk to the context . You can use it for testing or debugging.

Parameters

context

MilterClientContext

 

chunk

the string to be fed to context .

 

size

the size of chunk .

 

error

エラーを受け取る場所のアドレス、またはNULL

 

Returns

成功時はTRUE


milter_client_context_get_private_data ()

gpointer
milter_client_context_get_private_data
                               (MilterClientContext *context);

Gets the private data of the context .

Parameters

context

MilterClientContext

 

Returns

milter_client_context_set_private_data()で設定したプライベートなデータ、あるいはNULL


milter_client_context_set_private_data ()

void
milter_client_context_set_private_data
                               (MilterClientContext *context,
                                gpointer data,
                                GDestroyNotify destroy);

Sets the private data of the context . data is destroyed by destroy when data is unset. data is unset when new private data is set or context is destroyed.

Parameters

context

MilterClientContext

 

data

プライベートなデータ。

 

destroy

dataの破棄関数、あるいはNULL

 

milter_client_context_set_reply ()

gboolean
milter_client_context_set_reply (MilterClientContext *context,
                                 guint code,
                                 const gchar *extended_code,
                                 const gchar *message,
                                 GError **error);

エラー応答コードを設定します。MILTER_REPLY_TEMPORARY_FAILUREのときは4xx codeを使います。MILTER_REPLY_REJECTのときは5xx codeを使います。

milter.orgの smfi_setreplyも見てください。

Parameters

context

MilterClientContext

 

code

3桁のSMTPエラー応答コード。(RFC 2821)4xxと5xxだけが使えます。

 

extended_code

拡張応答コード(RFC 1893/2034)、あるいはNULL

 

message

SMTP応答のテキスト部分またはNULL

 

error

エラーを受け取る場所のアドレス、またはNULL

 

Returns

成功時はTRUE


milter_client_context_format_reply ()

gchar *
milter_client_context_format_reply (MilterClientContext *context);

milter_client_context_set_reply()で指定された現在のエラー応答コードを整形します。エラー応答コードが設定されていない場合は、NULLを返します。

Parameters

context

MilterClientContext

 

Returns

整形された応答コード、あるいはNULL


milter_client_context_add_header ()

gboolean
milter_client_context_add_header (MilterClientContext *context,
                                  const gchar *name,
                                  const gchar *value,
                                  GError **error);

Adds a header to the current message's header list. This function can be called in “end-of-message” signal.

milter.orgの smfi_addheaderも見てください。

FIXME: MILTER_ACTION_ADD_HEADERSについて書くこと。

Parameters

context

MilterClientContext

 

name

ヘッダ名。

 

value

ヘッダ値。

 

error

エラーを受け取る場所のアドレス、またはNULL

 

Returns

成功時はTRUE


milter_client_context_insert_header ()

gboolean
milter_client_context_insert_header (MilterClientContext *context,
                                     guint32 index,
                                     const gchar *name,
                                     const gchar *value,
                                     GError **error);

Inserts a header into the current message's header lists at index . This function can be called in “end-of-message” signal. See also smfi_insheader on milter.org.

FIXME: MILTER_ACTION_ADD_HEADERSについて書くこと。

Parameters

context

MilterClientContext

 

index

挿入する位置。

 

name

ヘッダ名。

 

value

ヘッダ値。

 

error

エラーを受け取る場所のアドレス、またはNULL

 

Returns

成功時はTRUE


milter_client_context_change_header ()

gboolean
milter_client_context_change_header (MilterClientContext *context,
                                     const gchar *name,
                                     guint32 index,
                                     const gchar *value,
                                     GError **error);

Changes a header that is located at index in headers that all of them are named name . If value is NULL, the header is deleted. This function can be called in “end-of-message” signal.

milter.orgの smfi_chgheaderも見てください。

FIXME: MILTER_ACTION_CHANGE_HEADERSについて書くこと。

Parameters

context

MilterClientContext

 

name

ヘッダ名。

 

index

the index of headers that all of them are named name . (1-based) FIXME: should change 0-based?

 

value

ヘッダ値。ターゲットのヘッダを削除する場合はNULLを指定してください。

 

error

エラーを受け取る場所のアドレス、またはNULL

 

Returns

成功時はTRUE


milter_client_context_delete_header ()

gboolean
milter_client_context_delete_header (MilterClientContext *context,
                                     const gchar *name,
                                     guint32 index,
                                     GError **error);

Deletes a header that is located at index in headers that all of them are named name . This function can be called in “end-of-message” signal. This function works same as milter_client_context_change_header() with NULL as value .

FIXME: MILTER_ACTION_CHANGE_HEADERSについて書くこと。

Parameters

context

MilterClientContext

 

name

ヘッダ名。

 

index

the index of headers that all of them are named name . (1-based) FIXME: should change 0-based?

 

error

エラーを受け取る場所のアドレス、またはNULL

 

Returns

成功時はTRUE


milter_client_context_change_from ()

gboolean
milter_client_context_change_from (MilterClientContext *context,
                                   const gchar *from,
                                   const gchar *parameters,
                                   GError **error);

Changes the envelope from address of the current message. ESMTP's 'MAIL FROM' parameter can be set by parameters . parameters may be NULL. This function can be called in “end-of-message” signal. See also smfi_chgfrom on milter.org.

FIXME: MILTER_ACTION_CHANGE_FROMについて書くこと。

Parameters

context

MilterClientContext

 

from

新しい送信アドレス。

 

parameters

ESMTPの'MAIL FROM'パラメタ。NULLも可。

 

error

エラーを受け取る場所のアドレス、またはNULL

 

Returns

成功時はTRUE


milter_client_context_add_recipient ()

gboolean
milter_client_context_add_recipient (MilterClientContext *context,
                                     const gchar *recipient,
                                     const gchar *parameters,
                                     GError **error);

Adds a new envelope recipient address to the current message. ESMTP's 'RCPT TO' parameter can be set by parameters . parameters may be NULL. This function can be called in “end-of-message” signal. See also smfi_addrcpt and smfi_addrcpt_par on milter.org.

FIXME: MILTER_ACTION_ADD_RECIPIENTとMILTER_ACTION_ADD_ENVELOPE_RECIPIENT_WITH_PARAMETERSについて書くこと。

Parameters

context

MilterClientContext

 

recipient

新しい宛先アドレス。

 

parameters

ESMTPの'RCPT TO'パラメタ。NULLも可。

 

error

エラーを受け取る場所のアドレス、またはNULL

 

Returns

成功時はTRUE


milter_client_context_delete_recipient ()

gboolean
milter_client_context_delete_recipient
                               (MilterClientContext *context,
                                const gchar *recipient,
                                GError **error);

Removes a envelope recipient that named recipient . This function can be called in “end-of-message” signal. See also smfi_delrcpt on milter.org.

FIXME: MILTER_ACTION_DELETE_RECIPIENTについて書くこと。

Parameters

context

MilterClientContext

 

recipient

削除する宛先アドレス。

 

error

エラーを受け取る場所のアドレス、またはNULL

 

Returns

成功時はTRUE


milter_client_context_replace_body ()

gboolean
milter_client_context_replace_body (MilterClientContext *context,
                                    const gchar *body,
                                    gsize body_size,
                                    GError **error);

Replaces the body of the current message with body . This function can be called in “end-of-message” signal. See also smfi_replacebody on milter.org.

FIXME: MILTER_ACTION_CHANGE_BODYについて書くこと。

Parameters

context

MilterClientContext

 

body

新しい本文。

 

body_size

the size of body .

 

error

エラーを受け取る場所のアドレス、またはNULL

 

Returns

成功時はTRUE


milter_client_context_progress ()

gboolean
milter_client_context_progress (MilterClientContext *context);

Notifies the MTA that this milter is still in progress. This function can be called in “end-of-message” signal. See also smfi_progress on milter.org.

Parameters

context

MilterClientContext

 

Returns

成功時はTRUE


milter_client_context_quarantine ()

gboolean
milter_client_context_quarantine (MilterClientContext *context,
                                  const gchar *reason);

Quarantines the current message with reason . This function can be called in “end-of-message” signal. See also smfi_quarantine on milter.org.

FIXME: MILTER_ACTION_QUARANTINEについて書くこと。

Parameters

context

MilterClientContext

 

reason

どうして現在のメッセージが隔離されるかの理由。

 

Returns

成功時はTRUE


milter_client_context_set_timeout ()

void
milter_client_context_set_timeout (MilterClientContext *context,
                                   guint timeout);

Sets the timeout by seconds. If MTA doesn't responses in timeout seconds, “timeout” signal is emitted. See also smfi_settimeout on milter.org.

Parameters

context

MilterClientContext

 

timeout

秒単位のタイムアウト。(既定値は7210秒)

 

milter_client_context_get_timeout ()

guint
milter_client_context_get_timeout (MilterClientContext *context);

秒単位でタイムアウトを取得します。

Parameters

context

MilterClientContext

 

Returns

秒単位でのタイムアウト。


milter_client_context_set_state ()

void
milter_client_context_set_state (MilterClientContext *context,
                                 MilterClientContextState state);

現在の状態を設定します。

This is for testing. Don't use it directory for normal use.

Parameters

context

MilterClientContext

 

state

MilterClientContextState

 

milter_client_context_get_state ()

MilterClientContextState
milter_client_context_get_state (MilterClientContext *context);

現在の状態を取得します。

This is for testing. Don't use it directory for normal use.

Parameters

context

MilterClientContext

 

Returns

現在の状態。


milter_client_context_set_quarantine_reason ()

void
milter_client_context_set_quarantine_reason
                               (MilterClientContext *context,
                                const gchar *reason);

Sets the quarantine reason.

This is for testing. Don't use it directory for normal use.

Parameters

context

MilterClientContext

 

reason

a quarantine reason.

 

milter_client_context_get_quarantine_reason ()

const gchar *
milter_client_context_get_quarantine_reason
                               (MilterClientContext *context);

Gets the quarantine reason.

This is for testing. Don't use it directory for normal use.

Parameters

context

MilterClientContext

 

Returns

隔離理由。


milter_client_context_get_last_state ()

MilterClientContextState
milter_client_context_get_last_state (MilterClientContext *context);

Gets the last state. It's one of start, negotiate, connect, helo, envelope-from, envelope-recipient, data, unknown, header, end-of-header, body and end-of-message.

Parameters

context

MilterClientContext

 

Returns

the last state.


milter_client_context_set_status ()

void
milter_client_context_set_status (MilterClientContext *context,
                                  MilterStatus status);

Sets the current status.

Parameters

context

MilterClientContext

 

status

a MilterStatus.

 

milter_client_context_get_status ()

MilterStatus
milter_client_context_get_status (MilterClientContext *context);

現在の状態を取得します。

Parameters

context

MilterClientContext

 

Returns

現在の状態。


milter_client_context_set_option ()

void
milter_client_context_set_option (MilterClientContext *context,
                                  MilterOption *option);

現在のコンテキストのオプションを取得します。

Parameters

context

MilterClientContext

 

option

MilterOption

 

milter_client_context_get_option ()

MilterOption *
milter_client_context_get_option (MilterClientContext *context);

コンテキストに接続しているサーバのソケットアドレスを取得します。

Parameters

context

MilterClientContext

 

Returns

コンテキストに接続しているサーバのソケットアドレス。


milter_client_context_set_socket_address ()

void
milter_client_context_set_socket_address
                               (MilterClientContext *context,
                                MilterGenericSocketAddress *address);

Sets the socket address of connected server for the context.

Parameters

context

MilterClientContext

 

address

a MilterGenericSocketAddress.

 

milter_client_context_get_socket_address ()

MilterGenericSocketAddress *
milter_client_context_get_socket_address
                               (MilterClientContext *context);


milter_client_context_get_message_result ()

MilterMessageResult *
milter_client_context_get_message_result
                               (MilterClientContext *context);

Gets the message result of context .

Parameters

context

MilterClientContext

 

Returns

the message result of context .


milter_client_context_set_message_result ()

void
milter_client_context_set_message_result
                               (MilterClientContext *context,
                                MilterMessageResult *result);

Sets the message result of context .

Parameters

context

MilterClientContext

 

result

the message result.

 

milter_client_context_reset_message_related_data ()

void
milter_client_context_reset_message_related_data
                               (MilterClientContext *context);

Resets message related data of context .

Normally, you don't need to call this function.

Parameters

context

MilterClientContext

 

milter_client_context_get_n_processing_sessions ()

guint
milter_client_context_get_n_processing_sessions
                               (MilterClientContext *context);

Returns number of the current processing sessions.

Parameters

context

MilterClientContext

 

Returns

number of the current processing sessions.


milter_client_context_set_packet_buffer_size ()

void
milter_client_context_set_packet_buffer_size
                               (MilterClientContext *context,
                                guint size);

Sets the packet buffer size for the context. Packets on end-of-message are buffered until the buffer size is full. Packet buffering is for performance.

Parameters

context

MilterClientContext

 

size

a packet buffer size in bytes. (The deafult is 0 bytes. It means buffering is disabled.)

 

milter_client_context_get_packet_buffer_size ()

guint
milter_client_context_get_packet_buffer_size
                               (MilterClientContext *context);

Gets the packet buffer size for the context.

Parameters

context

MilterClientContext

 

Returns

the packet buffer size for the context.


milter_client_context_set_mail_transaction_shelf_value ()

void
milter_client_context_set_mail_transaction_shelf_value
                               (MilterClientContext *context,
                                const gchar *key,
                                const gchar *value);

Sets the string for the mail_transaction_shelf.

Parameters

context

MilterClientContext

 

key

a string

 

value

a string

 

milter_client_context_get_mail_transaction_shelf_value ()

const gchar *
milter_client_context_get_mail_transaction_shelf_value
                               (MilterClientContext *context,
                                const gchar *key);

Gets the string for the mail_transaction_shelf.

Parameters

context

MilterClientContext

 

key

a key

 

Returns

the string for the mail_transaction_shelf.


milter_client_context_get_mail_transaction_shelf ()

GHashTable *
milter_client_context_get_mail_transaction_shelf
                               (MilterClientContext *context);

Gets the mail_transaction_shelf. This is a mail-transaction scope storage.

Parameters

context

MilterClientContext

 

Returns

the GHashTable for the context.


milter_client_context_clear_mail_transaction_shelf ()

void
milter_client_context_clear_mail_transaction_shelf
                               (MilterClientContext *context);

Remove all keys and values from mail_transaction_shelf.

Parameters

context

MilterClientContext

 

milter_client_context_mail_transaction_shelf_foreach ()

void
milter_client_context_mail_transaction_shelf_foreach
                               (MilterClientContext *context,
                                GHFunc func,
                                gpointer user_data);

A wrapper for g_hash_table_foreach().

Parameters

context

MilterClientContext

 

func

the function to call for each key/value pair

 

user_data

user data to pass to the function

 

Types and Values

MILTER_CLIENT_CONTEXT_ERROR

#define MILTER_CLIENT_CONTEXT_ERROR           (milter_client_context_error_quark())

MilterClientContextのエラー用のGErrorクォークを取得するために使われます。


enum MilterClientContextError

MilterClientContextの関数呼び出し中に発生するエラーを識別します。

Members

MILTER_CLIENT_CONTEXT_ERROR_INVALID_CODE

milter_client_context_set_reply()で指定されたステータスコードが不正であることを示します。

 

MILTER_CLIENT_CONTEXT_ERROR_IO_ERROR

milterプロトコルデータの読み書き時に発生した入出力エラーを示します。

 

MILTER_CLIENT_CONTEXT_ERROR_NULL

予期しない場所でNULLが渡されたことを示します。

 

MILTER_CLIENT_CONTEXT_ERROR_INVALID_STATE

現在のMilterClientContextStateで予期しない操作が要求されたことを示します。

 

MILTER_CLIENT_CONTEXT_ERROR_INVALID_ACTION

コンテキストのMilterActionFlagsで予期しない操作が要求されたことを示します。

 

MILTER_CLIENT_CONTEXT_ERROR_EMPTY

   

enum MilterClientContextState

MilterClientContextの状態を識別します。

Members

MILTER_CLIENT_CONTEXT_STATE_INVALID

不正な状態。

 

MILTER_CLIENT_CONTEXT_STATE_START

はじまったばかり。

 

MILTER_CLIENT_CONTEXT_STATE_NEGOTIATE

ネゴシエーションを開始。

 

MILTER_CLIENT_CONTEXT_STATE_NEGOTIATE_REPLIED

ネゴシエーション応答を受信した

 

MILTER_CLIENT_CONTEXT_STATE_CONNECT

接続情報を送信しました。

 

MILTER_CLIENT_CONTEXT_STATE_CONNECT_REPLIED

接続情報への応答を受信した。

 

MILTER_CLIENT_CONTEXT_STATE_HELO

HELOコマンドの開始。

 

MILTER_CLIENT_CONTEXT_STATE_HELO_REPLIED

HELOコマンドへの応答を受信した。

 

MILTER_CLIENT_CONTEXT_STATE_ENVELOPE_FROM

MAIL FROMコマンド開始。

 

MILTER_CLIENT_CONTEXT_STATE_ENVELOPE_FROM_REPLIED

MAIL FROMコマンドへの応答を受信した。

 

MILTER_CLIENT_CONTEXT_STATE_ENVELOPE_RECIPIENT

RCPT TOコマンドの開始。

 

MILTER_CLIENT_CONTEXT_STATE_ENVELOPE_RECIPIENT_REPLIED

RCPT TOコマンドへの応答を受信した。

 

MILTER_CLIENT_CONTEXT_STATE_DATA

DATAコマンドの開始。

 

MILTER_CLIENT_CONTEXT_STATE_DATA_REPLIED

DATAコマンドへの応答を受信した。

 

MILTER_CLIENT_CONTEXT_STATE_UNKNOWN

未知のSMTPコマンドの受信。

 

MILTER_CLIENT_CONTEXT_STATE_UNKNOWN_REPLIED

未知のSMTPコマンドへの応答を受信した。

 

MILTER_CLIENT_CONTEXT_STATE_HEADER

ヘッダを送信した。

 

MILTER_CLIENT_CONTEXT_STATE_HEADER_REPLIED

ヘッダへの応答を受信した。

 

MILTER_CLIENT_CONTEXT_STATE_END_OF_HEADER

すべてのヘッダを送信した。

 

MILTER_CLIENT_CONTEXT_STATE_END_OF_HEADER_REPLIED

ヘッダ終了への応答を受信した。

 

MILTER_CLIENT_CONTEXT_STATE_BODY

本体のかたまりの送信。

 

MILTER_CLIENT_CONTEXT_STATE_BODY_REPLIED

本体への応答を受信した。

 

MILTER_CLIENT_CONTEXT_STATE_END_OF_MESSAGE

すべての本文を送信した。

 

MILTER_CLIENT_CONTEXT_STATE_END_OF_MESSAGE_REPLIED

メッセージ終了への応答を受信した。

 

MILTER_CLIENT_CONTEXT_STATE_QUIT

正常終了の開始。

 

MILTER_CLIENT_CONTEXT_STATE_QUIT_REPLIED

正常終了への応答を受信した。

 

MILTER_CLIENT_CONTEXT_STATE_ABORT

異常終了の開始。

 

MILTER_CLIENT_CONTEXT_STATE_ABORT_REPLIED

異常終了への応答を受信した。

 

MILTER_CLIENT_CONTEXT_STATE_FINISHED

終了した。

 

プロパティ詳細

The “client” property

  “client”                   MilterClient *

コンテキストのクライアント。

Flags: Read / Write / Construct Only


The “message-result” property

  “message-result”           MilterMessageResult *

クライアントコンテキストのメッセージの処理結果。

Flags: Read / Write


The “option” property

  “option”                   MilterOption *

クライントコンテキストのオプション。

Flags: Read / Write


The “packet-buffer-size” property

  “packet-buffer-size”       guint

クライアントコンテキストのパケットバッファサイズ。

Flags: Read / Write

デフォルト値: 0


The “quarantine-reason” property

  “quarantine-reason”        gchar *

クライアントコンテキストの隔離理由。

Flags: Read / Write

デフォルト値: NULL


The “state” property

  “state”                    MilterClientContextState

クライアントコンテキストの状態。

Flags: Read / Write

デフォルト値: MILTER_CLIENT_CONTEXT_STATE_INVALID


The “status” property

  “status”                   MilterStatus

クライアントコンテキストのステータス。

Flags: Read / Write

デフォルト値: MILTER_STATUS_DEFAULT

シグナル詳細

The “abort” signal

MilterStatus
user_function (MilterClientContext     *context,
               MilterClientContextState Returns,
               gpointer                 user_data)

Flags: Run Last


The “abort-response” signal

void
user_function (MilterClientContext *context,
               MilterStatus         status,
               gpointer             user_data)

Flags: Run Last


The “body” signal

MilterStatus
user_function (MilterClientContext *context,
               gchar               *chunk,
               guint64              size,
               gpointer             user_data)

Flags: Run Last


The “body-response” signal

void
user_function (MilterClientContext *context,
               MilterStatus         status,
               gpointer             user_data)

Flags: Run Last


The “connect” signal

MilterStatus
user_function (MilterClientContext *context,
               gchar               *host_name,
               gpointer             address,
               guint                address_size,
               gpointer             user_data)

Flags: Run Last


The “connect-response” signal

void
user_function (MilterClientContext *context,
               MilterStatus         status,
               gpointer             user_data)

Flags: Run Last


The “data” signal

MilterStatus
user_function (MilterClientContext *context,
               gpointer             user_data)

Flags: Run Last


The “data-response” signal

void
user_function (MilterClientContext *context,
               MilterStatus         status,
               gpointer             user_data)

Flags: Run Last


The “define-macro” signal

void
user_function (MilterClientContext *context,
               MilterCommand        command,
               gpointer             macros,
               gpointer             user_data)

Flags: Run Last


The “end-of-header” signal

MilterStatus
user_function (MilterClientContext *context,
               gpointer             user_data)

Flags: Run Last


The “end-of-header-response” signal

void
user_function (MilterClientContext *context,
               MilterStatus         status,
               gpointer             user_data)

Flags: Run Last


The “end-of-message” signal

MilterStatus
user_function (MilterClientContext *context,
               gchar               *Returns,
               guint64              arg2,
               gpointer             user_data)

Flags: Run Last


The “end-of-message-response” signal

void
user_function (MilterClientContext *context,
               MilterStatus         status,
               gpointer             user_data)

Flags: Run Last


The “envelope-from” signal

MilterStatus
user_function (MilterClientContext *context,
               gchar               *from,
               gpointer             user_data)

Flags: Run Last


The “envelope-from-response” signal

void
user_function (MilterClientContext *context,
               MilterStatus         status,
               gpointer             user_data)

Flags: Run Last


The “envelope-recipient” signal

MilterStatus
user_function (MilterClientContext *context,
               gchar               *recipient,
               gpointer             user_data)

Flags: Run Last


The “envelope-recipient-response” signal

void
user_function (MilterClientContext *context,
               MilterStatus         status,
               gpointer             user_data)

Flags: Run Last


The “header” signal

MilterStatus
user_function (MilterClientContext *context,
               gchar               *name,
               gchar               *value,
               gpointer             user_data)

Flags: Run Last


The “header-response” signal

void
user_function (MilterClientContext *context,
               MilterStatus         status,
               gpointer             user_data)

Flags: Run Last


The “helo” signal

MilterStatus
user_function (MilterClientContext *context,
               gchar               *fqdn,
               gpointer             user_data)

Flags: Run Last


The “helo-response” signal

void
user_function (MilterClientContext *context,
               MilterStatus         status,
               gpointer             user_data)

Flags: Run Last


The “message-processed” signal

void
user_function (MilterClientContext *milterclientcontext,
               MilterMessageResult *arg1,
               gpointer             user_data)

Flags: Run Last


The “negotiate” signal

MilterStatus
user_function (MilterClientContext  *context,
               MilterOption         *option,
               MilterMacrosRequests *macros_requests,
               gpointer              user_data)

Flags: Run Last


The “negotiate-response” signal

void
user_function (MilterClientContext  *context,
               MilterOption         *option,
               MilterMacrosRequests *macros_requests,
               MilterStatus          status,
               gpointer              user_data)

Flags: Run Last


The “timeout” signal

void
user_function (MilterClientContext *context,
               gpointer             user_data)

Flags: Run Last


The “unknown” signal

MilterStatus
user_function (MilterClientContext *context,
               gchar               *command,
               gpointer             user_data)

Flags: Run Last


The “unknown-response” signal

void
user_function (MilterClientContext *context,
               MilterStatus         status,
               gpointer             user_data)

Flags: Run Last