/***************************************************************************
* ERROR CODE FOR ZxMail REXX Interface                                     *
/* RESPONSE CODE FOR PIPE FUNCTION */
#define ERROR_INVALID_NB_ARGUMENTS         1
#define ERROR_INVALID_PARAM                2
#define ERROR_INVALID_COMMAND              3
#define ERROR_SERVER_NOT_FOUND             4
#define ERROR_SERVER_NOT_RUNNING           5      /* ZXMAIL server not running */
#define ERROR_PIPE_INIT                    6
#define ERROR_PIPE                         7

#define RESPONSE_FAILED                    8      /* FAILED OPERATION */
#define ERROR_DBERROR                      9
#define ERROR_LOGIN_INVALID_USER           10
#define ERROR_LOGIN_INVALID_PASSWORD       11
#define ERROR_INVALID_ARGUMENT             12


#define ERROR_PIPE_IO                      13
#define ERROR_INVALID_SESSION_HANDLE       14
#define ERROR_MAILBOX_LOCKED               15
#define ERROR_COULD_NOT_LOCK_MAILBOX       16
#define ERROR_GETTING_MSG_LIST             17
#define ERROR_SESSION_HANDLE_EXPIRED       18
#define ERROR_MESSAGE_NOT_FOUND            19
#define ERROR_LOADING_PROC                 20
#define ERROR_ZXMAIL_ACCESS_DENIED         21
#define ERROR_INSUFFICIENT_AUTHORITY       22
#define ERROR_INVALID_UID                  23
#define ERROR_FUNC_NOTIMPLEMENTED          24
#define ERROR_MAILBOX_ALREADY_LINKED       25
#define ERROR_DOMAIN_NOT_FOUND             26
#define ERROR_DOMAIN_MISSING               27
#define ERROR_ALIAS_NOT_FOUND              28
#define ERROR_ALIAS_MISSING                29
#define ERROR_NOTHING_TO_CHANGE            30
#define ERROR_INVALID_INTERFACE_VERSION    31
#define ERROR_MAILBOX_NOT_FOUND            32
#define ERROR_ALIAS_EXIST                  33
#define ERROR_ALIAS_NAME_TOO_LONG          34
#define ERROR_MAILBOX_NAME_TOO_LONG        35
#define ERROR_DB_UPDATE_FAILED             36
#define ERROR_DB_ALIASMBOX_UPDATE_FAILED   37
#define ERROR_UNEXPECTED                   38
#define ERROR_MAILBOX_MISSING              39
#define ERROR_DOMAIN_TOO_LONG              40
#define ERROR_DOMAIN_EXIST                 41
#define ERROR_STEMVALUE_MISSING            42
#define ERROR_MAILBOXNAME_TOO_LONG         43
#define ERROR_PASSWORD_TOO_LONG            44
#define ERROR_MAILBOXDESC_TOO_LONG         45
#define ERROR_REACH_MAX_LICENSE            46
#define ERROR_CANNOT_DELETE                47
#define ERROR_MAILBOX_EXIST                48
#define ERROR_DOMAINMBOX_NOT_FOUND         49
#define ERROR_INVALID_TYPE                 50



/***************************************************************************
* Function:  ZxUser                                                        *
***************************************************************************/

/***************************************************************************
* Command:   INFO                                                          *
***************************************************************************/

/***************************************************************************
*                                                                          *
*                                                                          *
* Syntax: ZxUser('INFO', sid, userdata[, server]) *
*                                                                          *
* Parameter:                                                               *
*            sessionid input session ID                                    *
*            userdata  output Stem variable struct is:                     *
*                      userdata.!uid  -unique user id                      *
*                      userdata.!type  -type 1 = Admin 2 = User            *
*                      userdata.!tbytes -total bytes for messages          *
*                      userdata.!nbmsg  -number of message                 *
*                      userdata.!username  -username for this uid          *
*                      userdata.!mboxpath -path where the mail is stored   *
*                                          for specified user, only valid  *
*                                          for local server                *
*                                                                          *
*            server optional input network server to connect to            *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
*                                                                          *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_INVALID_COMMAND              3                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_SESSION_HANDLE_EXPIRED       18                         *
*            ERROR_MESSAGE_NOT_FOUND            19                         *
*            ERROR_LOADING_PROC                 20                         *
*                                                                          *
***************************************************************************/

ZxUser('INFO', sid, userdata[, server])

/***************************************************************************
* Command:   MSG                                                           *
***************************************************************************/
/***************************************************************************
*                                                                          *
* Sub Command: DEL                                                         *
*                                                                          *
* Syntax:    ZxUser('MSG', 'DEL', sid, mid[, server])                      *
*                                                                          *
* Parameter:                                                               *
*            sessionid input session ID                                    *
*            mid       input Message ID                                    *
*            server optional input network server to connect to            *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
*                                                                          *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_SESSION_HANDLE_EXPIRED       18                         *
*            ERROR_MESSAGE_NOT_FOUND            19                         *
*            ERROR_LOADING_PROC                 20                         *
*                                                                          *
***************************************************************************/


ZxUser('MSG', 'DEL', sid, mid[, server])


/***************************************************************************
* Function To be implemented in the future maybe                           *
***************************************************************************/

/***************************************************************************
*                                                                          *
* Sub Command: LIST                                                        *
*                                                                          *
* Syntax: ZxUser('MSG', 'LIST', sid, msglist[, server])                    *
*                                                                          *
* Parameter:                                                               *
*            sessionid input session ID                                    *
*                                                                          *
*            msglist   output Stem variable struct is index 1->n:          *
*                      msglist.0 -total number of message                  *
*                      msglist.x.!id   -database message id                *
*                      msglist.x.!uidl -unique message id                  *
*                      msglist.x.!usid -user id (duplication of            *
*                                     userdata.!uid)                       *
*                      msglist.x.!size -size of message                    *
*                      msglist.x.!file -message file name                  *
*                                      (no path 8.3 format                 *
*                                       ex: 00001234.MSG)                  *
*            server optional input network server to connect to            *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
*                                                                          *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_SESSION_HANDLE_EXPIRED       18                         *
*            ERROR_MESSAGE_NOT_FOUND            19                         *
*            ERROR_LOADING_PROC                 20                         *
*                                                                          *
***************************************************************************/

ZxUser('MSG', 'LIST', sid, stem_msglist[, server])

/***************************************************************************
* Command:   LOGIN                                                         *
*                                                                          *
* Syntax:    rc=ZxUser('LOGIN',username,password,sessionid,                *
*                            userdata,msglist,[server])                    *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            username  input                                               *
*            password  input                                               *
*            sessionid output                                              *
*            userdata  output Stem variable struct is:                     *
*                      userdata.0   -number of items allways 1 in this case*
*                      userdata.1.!uid  -unique user id                    *
*                      userdata.1.!type  -type 1 = Admin 2 = User          *
*                      userdata.1.!tbytes -total bytes for messages        *
*                      userdata.1.!nbmsg  -number of message               *
*                      userdata.1.!mboxpath -path where the mail is stored *
*                                          for specified user, only valid  *
*                                          for local server                *
*                                                                          *
*            msglist   output Stem variable struct is index 1->n:          *
*                      msglist.0 -total number of message                  *
*                      msglist.x.!id   -database message id                *
*                      msglist.x.!uidl -unique message id                  *
*                      msglist.x.!usid -user id (duplication of            *
*                                     userdata.!uid)                       *
*                      msglist.x.!size -size of message                    *
*                      msglist.x.!file -message file name                  *
*                                      (no path 8.3 format                 *
*                                       ex: 00001234.MSG)                  *
*                                                                          *
*            server optional input network server to connect to            *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *

*                                                                          *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_DBERROR                      9                          *
*            ERROR_LOGIN_INVALID_USER           10                         *
*            ERROR_LOGIN_INVALID_PASSWORD       11                         *
*            ERROR_PIPE_IO                      13                         *
*                                                                          *
***************************************************************************/

ZxUser('LOGIN', username, pwd, sid, stem_userdata, stemmsglist[, server])

/***************************************************************************
* Command:   LOGOFF                                                        *
*                                                                          *
* Syntax:    rc=ZxUser('LOGOFF',sessionid[, server])                       *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_INVALID_SESSION_HANDLE       14                         *
*                                                                          *
***************************************************************************/

ZxUser('LOGOFF', sid[, server])


/***************************************************************************
* Function:  ZxAdmin                                                       *
***************************************************************************/

//all these you need admin login

/***************************************************************************
* Command:   LOGIN                                                         *
*                                                                          *
* Syntax:    rc=ZxAdmin('LOGIN',username,password,sessionid, [server])     *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            username  input                                               *
*            password  input                                               *
*            sessionid output                                              *
*                                                                          *
*            server optional input network server to connect to            *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *

*                                                                          *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_DBERROR                      9                          *
*            ERROR_LOGIN_INVALID_USER           10                         *
*            ERROR_LOGIN_INVALID_PASSWORD       11                         *
*            ERROR_PIPE_IO                      13                         *
*                                                                          *
***************************************************************************/

ZxAdmin('LOGIN', username, pwd, sid [, server])

/***************************************************************************
* Command:   LOGOFF                                                        *
*                                                                          *
* Syntax:    rc=ZxUser('LOGOFF',sessionid[, server])                       *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_INVALID_SESSION_HANDLE       14                         *
*                                                                          *
***************************************************************************/

ZxAdmin('LOGOFF', sid[, server])

/***************************************************************************
* Command:   ALIAS                                                         *
***************************************************************************/

/***************************************************************************
* Sub Command: GETINFO                                                     *
*                                                                          *
* Syntax:    rc=ZxAdmin('ALIAS','GETINFO',sid, stem[, server])             *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sid - Session ID input                                        *
*            stem - input/output                                           *
*                   input:                                                 *
*                         stem.!aliasid                                    *
*                         stem.!domainid                                   *
*                   output:                                                *
*                          stem.!aliasid                                   *
*                          stem.!alias                                     *
*                          stem.!mailboxid                                 *
*                                                                          *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_INVALID_SESSION_HANDLE       14                         *
*            ERROR_ZXMAIL_ACCESS_DENIED         21                         *

*            ERROR_NO_ALIAS_ID_OR_NAME      25                             *
*            ERROR_DOMAIN_NOT_FOUND             26                         *
*            ERROR_DOMAIN_MISSING               27                         *
*            ERROR_ALIAS_NOT_FOUND          28                             *
*                                                                          *
***************************************************************************/

ZxAdmin('ALIAS', 'GETINFO', sid, stem [, server])



/***************************************************************************
* Sub-Command:   MODIFY                                                    *
*                                                                          *
* Syntax:    rc=ZxAdmin('ALIAS','MODIFY',sid, stem [, server])    *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            stem - input                                                  *
*                   input:                                                 *
*                         stem.!aliasid                                    *
*                         stem.!domainid                                   *
*                         stem.!mailboxid or/and stem.!alias               *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_DBERROR                      9                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_INVALID_SESSION_HANDLE       14                         *
*            ERROR_LOADING_PROC                 20                         *
*            ERROR_ZXMAIL_ACCESS_DENIED         21                         *
*            ERROR_DOMAIN_MISSING               27                         *
*            ERROR_ALIAS_MISSING                29                         *
*            ERROR_NOTHING_TO_CHANGE            30                         *
*            ERROR_DOMAIN_NOT_FOUND             26                         *
*            ERROR_ALIAS_EXIST                  33                         *
*            ERROR_ALIAS_NOT_FOUND              28                         *
*            ERROR_ALIAS_NAME_TOO_LONG          34                         *
*            ERROR_MAILBOX_NAME_TOO_LONG        35                         *
*            ERROR_DB_UPDATE_FAILED             36                         *
*            ERROR_DB_ALIASMBOX_UPDATE_FAILED   37                         *
*            ERROR_UNEXPECTED                   38                         *
*                                                                          *
***************************************************************************/

ZxAdmin('ALIAS', 'MODIFY', sid, stem[, server])


/***************************************************************************
* Sub-Command:   ADD                                                       *
*                                                                          *
* Syntax:    rc=ZxAdmin('ALIAS','ADD',sid, stem [, server])                *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            stem - input/output                                           *
*                   input:                                                 *
*                         stem.!domainid                                   *
*                         stem.!alias                                      *
*                         stem.!mailboxid                                  *
*                   output:                                                *
*                         stem.!aliasid                                    *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_DBERROR                      9                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_INVALID_SESSION_HANDLE       14                         *
*            ERROR_LOADING_PROC                 20                         *
*            ERROR_ZXMAIL_ACCESS_DENIED         21                         *
*            ERROR_DOMAIN_MISSING               27                         *
*            ERROR_ALIAS_MISSING                29                         *
*            ERROR_NOTHING_TO_CHANGE            30                         *
*            ERROR_DOMAIN_NOT_FOUND             26                         *
*            ERROR_ALIAS_EXIST                  33                         *
*            ERROR_ALIAS_NOT_FOUND              28                         *
*            ERROR_ALIAS_NAME_TOO_LONG          34                         *
*            ERROR_MAILBOX_NAME_TOO_LONG        35                         *
*            ERROR_DB_UPDATE_FAILED             36                         *
*            ERROR_DB_ALIASMBOX_UPDATE_FAILED   37                         *
*            ERROR_UNEXPECTED                   38                         *
*                                                                          *
***************************************************************************/


ZxAdmin('ALIAS', 'ADD', sid, stem [, server])


/***************************************************************************
* Sub-Command:   DEL                                                       *
*                                                                          *
* Syntax:    rc=ZxAdmin('ALIAS','DEL',sid, domid, aliasid [, server])      *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            aliasid   - input                                             *
*            domid     - input                                             *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_DBERROR                      9                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_INVALID_SESSION_HANDLE       14                         *
*            ERROR_LOADING_PROC                 20                         *
*            ERROR_ZXMAIL_ACCESS_DENIED         21                         *
*            ERROR_DOMAIN_MISSING               27                         *
*            ERROR_ALIAS_MISSING                29                         *
*            ERROR_NOTHING_TO_CHANGE            30                         *
*            ERROR_DOMAIN_NOT_FOUND             26                         *
*            ERROR_ALIAS_EXIST                  33                         *
*            ERROR_ALIAS_NOT_FOUND              28                         *
*            ERROR_ALIAS_NAME_TOO_LONG          34                         *
*            ERROR_MAILBOX_NAME_TOO_LONG        35                         *
*            ERROR_DB_UPDATE_FAILED             36                         *
*            ERROR_DB_ALIASMBOX_UPDATE_FAILED   37                         *
*            ERROR_UNEXPECTED                   38                         *
*                                                                          *
***************************************************************************/


ZxAdmin('ALIAS', 'DEL', sid, domid, aliasid[, server])

/***************************************************************************
* Sub-Command:   LIST                                                      *
*                                                                          *
* Syntax:    rc=ZxAdmin('ALIAS','LIST', sid, stem [, server])              *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            domainid  - input                                             *
*            stem      - input/output                                      *
*                        input:                                            *
*                            stem.!domainid                                *
*                        output:                                           *
*                            stem.0                                        *
*                            stem.x.!alias                                 *
*                            stem.x.!aliasid                               *
*                            stem.x.!mailboxid                             *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
***************************************************************************/


ZxAdmin('ALIAS', 'LIST', sid, stem [, server])


/***************************************************************************
* Command:   DOMAIN                                                        *
***************************************************************************/

/***************************************************************************
* Sub-Command:   ADD                                                       *
*                                                                          *
* Syntax:    rc=ZxAdmin('DOMAIN','ADD',sid, stem [, server])               *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            stem - input/output                                           *
*                   input:                                                 *
*                         stem.!domain                                     *
*                   output:                                                *
*                         stem.!domainid                                   *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_DBERROR                      9                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_INVALID_SESSION_HANDLE       14                         *
*            ERROR_LOADING_PROC                 20                         *
*            ERROR_ZXMAIL_ACCESS_DENIED         21                         *
*            ERROR_DOMAIN_MISSING               27                         *
*            ERROR_DOMAIN_NOT_FOUND             26                         *
*            ERROR_MAILBOX_NAME_TOO_LONG        35                         *
*            ERROR_DB_UPDATE_FAILED             36                         *
*            ERROR_DB_ALIASMBOX_UPDATE_FAILED   37                         *
*            ERROR_UNEXPECTED                   38                         *
*            ERROR_DOMAIN_TOO_LONG              40                         *
*                                                                          *
***************************************************************************/


ZxAdmin('DOMAIN', 'ADD', sid, stem [, server])

/***************************************************************************
* Sub-Command:   DEL                                                       *
*                                                                          *
* Syntax:    rc=ZxAdmin('DOMAIN','DEL', domainid [, server])               *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            domainid  - input                                             *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_DBERROR                      9                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_INVALID_SESSION_HANDLE       14                         *
*            ERROR_LOADING_PROC                 20                         *
*            ERROR_ZXMAIL_ACCESS_DENIED         21                         *
*            ERROR_DOMAIN_MISSING               27                         *
*            ERROR_DOMAIN_NOT_FOUND             26                         *
*            ERROR_MAILBOX_NAME_TOO_LONG        35                         *
*            ERROR_DB_UPDATE_FAILED             36                         *
*            ERROR_DB_ALIASMBOX_UPDATE_FAILED   37                         *
*            ERROR_UNEXPECTED                   38                         *
*            ERROR_DOMAIN_TOO_LONG              40                         *
*                                                                          *
***************************************************************************/

ZxAdmin('DOMAIN', 'DEL', sid, domainid [, server])

/***************************************************************************
* Sub-Command:   GETINFO                                                   *
*                                                                          *
* Syntax:    rc=ZxAdmin('DOMAIN','GETINFO', sessionid, domainid [, server])*
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            stem      - input/output                                      *
*                        input:                                            *
*                            stem.!domainid                                *
*                        output:                                           *
*                            stem.!domainid                                *
*                            stem.!domain                                  *
*                            stem.!defaultmailbox                          *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_DBERROR                      9                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_INVALID_SESSION_HANDLE       14                         *
*            ERROR_LOADING_PROC                 20                         *
*            ERROR_ZXMAIL_ACCESS_DENIED         21                         *
*            ERROR_DOMAIN_MISSING               27                         *
*            ERROR_DOMAIN_NOT_FOUND             26                         *
*            ERROR_MAILBOX_NAME_TOO_LONG        35                         *
*            ERROR_DB_UPDATE_FAILED             36                         *
*            ERROR_DB_ALIASMBOX_UPDATE_FAILED   37                         *
*            ERROR_UNEXPECTED                   38                         *
*            ERROR_DOMAIN_TOO_LONG              40                         *
*                                                                          *
***************************************************************************/


ZxAdmin('DOMAIN', 'GETINFO', sid, stem [, server])

/***************************************************************************
* Sub-Command:   LIST                                                      *
*                                                                          *
* Syntax:    rc=ZxAdmin('DOMAIN','LIST', sid, stem [, server])             *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            stem      - output                                            *
*                        output:                                           *
*                            stem.0                                        *
*                            stem.x.!domainid                              *
*                            stem.x.!domain                                *
*                            stem.x.!defaultmailbox                        *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_DBERROR                      9                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_INVALID_SESSION_HANDLE       14                         *
*            ERROR_LOADING_PROC                 20                         *
*            ERROR_ZXMAIL_ACCESS_DENIED         21                         *
*            ERROR_DOMAIN_MISSING               27                         *
*            ERROR_DOMAIN_NOT_FOUND             26                         *
*            ERROR_MAILBOX_NAME_TOO_LONG        35                         *
*            ERROR_DB_UPDATE_FAILED             36                         *
*            ERROR_DB_ALIASMBOX_UPDATE_FAILED   37                         *
*            ERROR_UNEXPECTED                   38                         *
*            ERROR_DOMAIN_TOO_LONG              40                         *
*                                                                          *
***************************************************************************/

ZxAdmin('DOMAIN', 'LIST', sid, stem [, server])

/***************************************************************************
* Sub-Command:   LISTMBOX                                                  *
*                                                                          *
* Syntax:    rc=ZxAdmin('DOMAIN','LISTMBOX', sid, stem [, server])         *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            domainid  - input                                             *
*            stem      - input/output                                      *
*                        input:                                            *
*                            stem.!domainid                                *
*                        output:                                           *
*                            stem.0                                        *
*                            stem.x.!mailbox                               *
*                            stem.x.!mailboxid                             *
*                            stem.x.!domuserid                             *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
***************************************************************************/

ZxAdmin('DOMAIN','LISTMBOX', sid, stem [, server])

/***************************************************************************
* Sub-Command:   SETDEFAULTMBOX                                            *
*                                                                          *
* Syntax:    rc=ZxAdmin('DOMAIN','SETDEFAULTMBOX',                         *
*                        sid, domid, mboxid [, server])                    *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            domainid  - input                                             *
*            mailboxid - input                                             *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
***************************************************************************/

ZxAdmin('DOMAIN', 'SETDEFAULTMBOX', sid, domainid, mailboxid [, server])

/***************************************************************************
* Sub-Command:   MODIFY                                                    *
*                                                                          *
* Syntax:    rc=ZxAdmin('DOMAIN','MODIFY',                                 *
*                        sid, domid, newdomainname [, server])             *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            domainid  - input                                             *
*            newdomainname - input                                         *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
***************************************************************************/

ZxAdmin('DOMAIN', 'MODIFY', sid, domainid, new_domain_name[, server])

/***************************************************************************
* Sub-Command:   ADDMBOX                                                   *
*                                                                          *
* Syntax:    rc=ZxAdmin('DOMAIN','ADDMBOX',                                *
*                        sid, domid, mboxid [, server])                    *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            domainid  - input                                             *
*            mboxid    - input                                             *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
***************************************************************************/

ZxAdmin('DOMAIN','ADDMBOX', sid, domainid, mailboxid [, server])

/***************************************************************************
* Sub-Command:   DELMBOX                                                   *
*                                                                          *
* Syntax:    rc=ZxAdmin('DOMAIN','DELMBOX',                                *
*                        sid, domid, mboxid [, server])                    *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            domainid  - input                                             *
*            mboxid    - input                                             *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
***************************************************************************/

ZxAdmin('DOMAIN', 'REMMBOX', sid, domainid, mailboxid [, server])

/***************************************************************************
* Command:   MBOX                                                          *
***************************************************************************/

/***************************************************************************
* Sub-Command:   ADD                                                       *
*                                                                          *
* Syntax:    rc=ZxAdmin('MBOX','ADD', sid, stem [, server])                *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            stem      - input/output                                      *
*                        input:                                            *
*                            stem.!mailbox                                 *
*                            stem.!password                                *
*                            stem.!desc                                    *
*                            stem.!type 1=Admin 2=User                     *
*                        output:                                           *
*                            stem.!mailboxid                               *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
***************************************************************************/

ZxAdmin('MBOX', 'ADD', sid, stem [, server])

/***************************************************************************
* Sub-Command:   DEL                                                       *
*                                                                          *
* Syntax:    rc=ZxAdmin('MBOX','DEL', sid, mailboxid [, server])           *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            mailboxid - input                                             *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
***************************************************************************/

ZxAdmin('MBOX', 'DEL', sid, mailboxid [, server])

/***************************************************************************
* Sub-Command:   MODIFY                                                    *
*                                                                          *
* Syntax:    rc=ZxAdmin('MBOX','MODIFY', sid, stem [, server])             *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*                        input:                                            *
*                            stem.!mailboxid                               *
*                            stem.!password                                *
*                            stem.!desc                                    *
*                            stem.!type 1=Admin 2=User                     *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
***************************************************************************/

ZxAdmin('MBOX', 'MODIFY', sid, stem [, server])

/***************************************************************************
* Sub-Command:   LIST                                                      *
*                                                                          *
* Syntax:    rc=ZxAdmin('MBOX','LIST', sid, stem [, server])               *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - output                                            *
*                        output:                                           *
*                            stem.0                                        *
*                            stem.x.!mailboxid                             *
*                            stem.x.!mailbox                               *
*                            stem.x.!desc                                  *
*                            stem.x.!type 1=Admin 2=User                   *
*                            stem.x.!nbmsg                                 *
*                            stem.x.!tbytes                                *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
***************************************************************************/

ZxAdmin('MBOX', 'LIST', sid, stem [, server])

/***************************************************************************
* Sub-Command:   INFO                                                      *
*                                                                          *
* Syntax:    rc=ZxAdmin('MBOX','INFO', sid, stem [, server])               *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            userdata  - input/output                                      *
*                        input:                                            *
*                            stem.!mailboxid                               *
*            userdata  output Stem variable struct is:                     *
*                      stem.!mailboxid                                     *
*                      stem.!mailbox                                       *
*                      stem.!type  -type 1 = Admin 2 = User                *
*                      stem.!tbytes -total bytes for messages              *
*                      stem.!nbmsg  -number of message                     *
*                      stem.!username  -username for this uid              *
*                      stem.!mboxpath -path where the mail is stored       *
*                                          for specified user, only valid  *
*                                          for local server                *
*                                                                          *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
***************************************************************************/

ZxAdmin('MBOX', 'INFO', sid, stem [, server])

/***************************************************************************
* Sub-Command:   LISTMSG                                                   *
*                                                                          *
* Syntax:    rc=ZxAdmin('MBOX','LISTMSG', sid, userdata [, server])        *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            userdata  - input/output                                      *
*                        input:                                            *
*                             stem.!mailboxid                              *
*            userdata  output Stem variable struct is:                     *
*                      stem.0                                              *
*                      stem.x.!msgid                                       *
*                      stem.x.!filename                                    *
*                      stem.x.!msgsize                                     *
*                                                                          *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
*                                                                          *
***************************************************************************/

ZxAdmin('MBOX', 'LISTMSG', sid, stem [, server])

ZxAdmin('REDIR', 'LIST', sid, stem [, server])
stem.0
stem.x.!redirid
stem.x.!mailbox
stem.x.!address
stem.x.!external
stem.x.!keepcopy

ZxAdmin('REDIR', 'ADD', sid, stem [, server])
//input
stem.!mailbox
stem.!address
stem.!external
stem.!keepcopy
//output
stem.!redirid


ZxAdmin('REDIR', 'DEL', sid, redirid [, server])


zxemail
Zxemail(sid, to, from, msg, header, file [, server])



/***************************************************************************
* Command:   CONFIG                                                        *
***************************************************************************/

/***************************************************************************
* Sub-Command:   SET                                                       *
*                                                                          *
* Syntax:    rc=ZxAdmin('DOMAIN','ADD',sid, stem [, server])               *
*                                                                          *
*                                                                          *
* Parameter:                                                               *
*            sessionid - input                                             *
*            stem - input/output                                           *
*                   input:                                                 *
*                         stem.!domain                                     *
*                   output:                                                *
*                         stem.!domainid                                   *
*                                                                          *
*            server - optional input network server to connect to          *
*                            (i.e. \\Machine or \\Server                   *
*                             requires Netbeui to be running and           *
*                             on the client and the target)                *
* Return:                                                                  *
*            RESPONSE_SUCCESS                   0                          *
*            ERROR_INVALID_NB_ARGUMENTS         1                          *
*            ERROR_INVALID_PARAM                2                          *
*            ERROR_SERVER_NOT_FOUND             4                          *
*            ERROR_SERVER_NOT_RUNNING           5                          *
*            ERROR_PIPE_INIT                    6                          *
*            ERROR_PIPE                         7                          *
*            RESPONSE_FAILED                    8                          *
*            ERROR_DBERROR                      9                          *
*            ERROR_PIPE_IO                      13                         *
*            ERROR_INVALID_SESSION_HANDLE       14                         *
*            ERROR_LOADING_PROC                 20                         *
*            ERROR_ZXMAIL_ACCESS_DENIED         21                         *
*            ERROR_DOMAIN_MISSING               27                         *
*            ERROR_DOMAIN_NOT_FOUND             26                         *
*            ERROR_MAILBOX_NAME_TOO_LONG        35                         *
*            ERROR_DB_UPDATE_FAILED             36                         *
*            ERROR_DB_ALIASMBOX_UPDATE_FAILED   37                         *
*            ERROR_UNEXPECTED                   38                         *
*            ERROR_DOMAIN_TOO_LONG              40                         *
*                                                                          *
***************************************************************************/
ZxAdmin(CONFIG, SMTPSERVICE, sid, START|STOP|ENABLE|DISABLE [, server])

ZxAdmin(CONFIG, POP3SERVICE, sid, START|STOP|ENABLE|DISABLE [, server])
ZxAdmin(CONFIG, SMTPRELAY, sid, {ENABLE , relayname [, server]} | {DISABLE [, server])}
ZxAdmin(CONFIG, SMTPRELAYUSEAUTH, sid, {ENABLE , username, password [, server]} | {DISABLE, [, server])}

ZxAdmin(CONFIG, GET, sid, stem)


//these i have to ponder if i do or don't
ZxAdmin(MBOX, ADDMSG, sid, mailboxid, infile[, newmid] [, server])
ZxAdmin(MBOX, DELMSG, sid, mailboxid, mid [, server])
ZxAdmin(MBOX, GETMSG, sid, mailboxid, mid, outputfile [, server])

//Not implemented yet
ZxUser('MSG', 'GET', sid, mid, file[, server])

//Not implemented yet
ZxUser('MSG', 'GETFILENAME', sid, mid, filename[, server])

/*ZxAdmin(MBOX, GETMSGINFO, sid, mailboxid, mid ,stem [, server])
stem.!msgid
stem.!filename
stem.!msgsize*/

