imap - IMAP4 に対する Folder インタフェース

------------------------------------------------------------------------------
#define IMAP_FOLDER(obj)

Folder クラスのオブジェクト obj を Folder 型にキャストします。

------------------------------------------------------------------------------
#define IMAP_SESSION(obj)

Session クラスのオブジェクトを IMAPSession 型にキャストします。

------------------------------------------------------------------------------
IMAPAuthType

typedef enum
{
	IMAP_AUTH_LOGIN		= 1 << 0,
	IMAP_AUTH_CRAM_MD5	= 1 << 1,
	IMAP_AUTH_PLAIN		= 1 << 2
} IMAPAuthType;

IMAP の認証方法を指定するときに使用する enum です。

------------------------------------------------------------------------------
IMAPFolder

struct _IMAPFolder
{
	RemoteFolder rfolder;

	/* list of IMAPNameSpace */
	GList *ns_personal;
	GList *ns_others;
	GList *ns_shared;
};

1つの IMAP アカウントに属するサーバの情報とフォルダツリーを格納するための
構造体です。 RemoteFolder のサブクラスになります。

------------------------------------------------------------------------------
IMAPSession

struct _IMAPSession
{
	Session session;

	gboolean authenticated;

	gchar **capability;
	gboolean uidplus;

	gchar *mbox;
	guint cmd_count;
};

IMAP セッションを表す構造体です。 Session のサブクラスになります。

------------------------------------------------------------------------------
IMAPNameSpace

struct _IMAPNameSpace
{
	gchar *name;
	gchar separator;
};

IMAP のネームスペースの名前と区切り記号の組を表す構造体です。

------------------------------------------------------------------------------
#define IMAP_SUCCESS	0
#define IMAP_SOCKET	2
#define IMAP_AUTHFAIL	3
#define IMAP_PROTOCOL	4
#define IMAP_SYNTAX	5
#define IMAP_IOERR	6
#define IMAP_ERROR	7

IMAP のエラー状態を表す値です。

------------------------------------------------------------------------------
#define IMAPBUFSIZE

IMAP の処理に使用するバッファのサイズを表します。

------------------------------------------------------------------------------
IMAPFlags

typedef enum
{
	IMAP_FLAG_SEEN		= 1 << 0,
	IMAP_FLAG_ANSWERED	= 1 << 1,
	IMAP_FLAG_FLAGGED	= 1 << 2,
	IMAP_FLAG_DELETED	= 1 << 3,
	IMAP_FLAG_DRAFT		= 1 << 4
} IMAPFlags;

IMAP のメッセージのフラグを表す enum です。

------------------------------------------------------------------------------
#define IMAP_IS_SEEN(flags)

IMAPFlags flags に SEEN フラグが立っていれば TRUE を返します。

------------------------------------------------------------------------------
#define IMAP_IS_ANSWERED(flags)

IMAPFlags flags に ANSWERED フラグが立っていれば TRUE を返します。

------------------------------------------------------------------------------
#define IMAP_IS_FLAGGED(flags)

IMAPFlags flags に FLAGGED フラグが立っていれば TRUE を返します。

------------------------------------------------------------------------------
#define IMAP_IS_DELETED(flags)

IMAPFlags flags に DELETED フラグが立っていれば TRUE を返します。

------------------------------------------------------------------------------
#define IMAP_IS_DRAFT(flags)

IMAPFlags flags に DRAFT フラグが立っていれば TRUE を返します。

------------------------------------------------------------------------------
FolderClass *imap_get_class		(void);

IMAPFolder の FolderClass を取得します。

戻り値: FolderClass へのポインタ

------------------------------------------------------------------------------
gint imap_msg_set_perm_flags		(MsgInfo	*msginfo,
					 MsgPermFlags	 flags);

メッセージ msginfo の IMAP サーバ上のフラグを flags 相当の状態に変更します。

msginfo: MsgInfo 構造体へのポインタ
flags: msginfo に対してセットする永続フラグ
戻り値: 成功した場合 IMAP_SUCCESS
        エラーの場合 IMAP_SUCCESS 以外

------------------------------------------------------------------------------
gint imap_msg_unset_perm_flags		(MsgInfo	*msginfo,
					 MsgPermFlags	 flags);

メッセージ msginfo の IMAP サーバ上のフラグのうち flags で指定されている
ものを解除します。

msginfo: MsgInfo 構造体へのポインタ
flags: msginfo に対して解除する永続フラグ
戻り値: 成功した場合 IMAP_SUCCESS
        エラーの場合 IMAP_SUCCESS 以外

------------------------------------------------------------------------------
gint imap_msg_list_set_perm_flags	(GSList		*msglist,
					 MsgPermFlags	 flags);

メッセージのリスト msglist の IMAP サーバ上の各フラグを flags 相当の状態に
変更します。

msglist: MsgInfo 構造体へのポインタのリスト
flags: msglist に対してセットする永続フラグ
戻り値: 成功した場合 IMAP_SUCCESS
        エラーの場合 IMAP_SUCCESS 以外

------------------------------------------------------------------------------
gint imap_msg_list_unset_perm_flags	(GSList		*msglist,
					 MsgPermFlags	 flags);

メッセージのリスト msglist の IMAP サーバ上の各フラグのうち flags で指定
されているものを解除します。

msglist: MsgInfo 構造体へのポインタのリスト
flags: msglist に対して解除する永続フラグ
戻り値: 成功した場合 IMAP_SUCCESS
        エラーの場合 IMAP_SUCCESS 以外
