📄 mail.h
字号:
/* * Program: Mailbox Access routines * * Author: Mark Crispin * Networks and Distributed Computing * Computing & Communications * University of Washington * Administration Building, AG-44 * Seattle, WA 98195 * Internet: MRC@CAC.Washington.EDU * * Date: 22 November 1989 * Last Edited: 19 September 2000 * * Copyright 2000 by the University of Washington * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, provided * that the above copyright notice appears in all copies and that both the * above copyright notice and this permission notice appear in supporting * documentation, and that the name of the University of Washington not be * used in advertising or publicity pertaining to distribution of the software * without specific, written prior permission. This software is made * available "as is", and * THE UNIVERSITY OF WASHINGTON DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, * WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT LIMITATION ALL IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND IN * NO EVENT SHALL THE UNIVERSITY OF WASHINGTON BE LIABLE FOR ANY SPECIAL, * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, TORT * (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING OUT OF OR IN CONNECTION * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * *//* Build parameters */#define CACHEINCREMENT 250 /* cache growth increments */#define MAILTMPLEN 1024 /* size of a temporary buffer */#define MAXMESSAGESIZE 65000 /* MS-DOS: maximum text buffer size * other: initial text buffer size */#define NUSERFLAGS 30 /* # of user flags (current servers 30 max) */#define MAXUSERFLAG 64 /* maximum length of a user flag */#define BASEYEAR 1970 /* the year time began on Unix (note: mx * driver depends upon this matching Unix) */ /* default for unqualified addresses */#define BADHOST ".MISSING-HOST-NAME." /* default for syntax errors in addresses */#define ERRHOST ".SYNTAX-ERROR."/* Coddle certain compilers' 6-character symbol limitation */#ifdef __COMPILER_KCC__#include "shortsym.h"#endif/* Constants */#define NIL 0 /* convenient name */#define T 1 /* opposite of NIL */#define LONGT (long) 1 /* long T */#define WARN (long) 1 /* mm_log warning type */#define ERROR (long) 2 /* mm_log error type */#define PARSE (long) 3 /* mm_log parse error type */#define BYE (long) 4 /* mm_notify stream dying */#define DELIM '\377' /* strtok delimiter character *//* Bits from mail_parse_flags(). Don't change these, since the header format * used by tenex, mtx, and mbx corresponds to these bits. */#define fSEEN 1#define fDELETED 2#define fFLAGGED 4#define fANSWERED 8#define fOLD 16#define fDRAFT 32/* Global and Driver Parameters */ /* 0xx: driver and authenticator flags */#define ENABLE_DRIVER (long) 1#define DISABLE_DRIVER (long) 2#define ENABLE_AUTHENTICATOR (long) 3#define DISABLE_AUTHENTICATOR (long) 4 /* 1xx: c-client globals */#define GET_DRIVERS (long) 101#define SET_DRIVERS (long) 102#define GET_GETS (long) 103#define SET_GETS (long) 104#define GET_CACHE (long) 105#define SET_CACHE (long) 106#define GET_SMTPVERBOSE (long) 107#define SET_SMTPVERBOSE (long) 108#define GET_RFC822OUTPUT (long) 109#define SET_RFC822OUTPUT (long) 110#define GET_READPROGRESS (long) 111#define SET_READPROGRESS (long) 112#define GET_THREADERS (long) 113#define SET_THREADERS (long) 114#define GET_NAMESPACE (long) 115#define SET_NAMESPACE (long) 116#define GET_MAILPROXYCOPY (long) 117#define SET_MAILPROXYCOPY (long) 118#define GET_SERVICENAME (long) 119#define SET_SERVICENAME (long) 120#define GET_DRIVER (long) 121#define SET_DRIVER (long) 122#define GET_EXPUNGEATPING (long) 123#define SET_EXPUNGEATPING (long) 124#define GET_PARSEPHRASE (long) 125#define SET_PARSEPHRASE (long) 126#define GET_ALTDRIVER (long) 127#define SET_ALTDRIVER (long) 128#define GET_ALTDRIVERNAME (long) 129#define SET_ALTDRIVERNAME (long) 130#define GET_TRYALTFIRST (long) 131#define SET_TRYALTFIRST (long) 132#define GET_BLOCKNOTIFY (long) 133#define SET_BLOCKNOTIFY (long) 134#define GET_SORTRESULTS (long) 135#define SET_SORTRESULTS (long) 136#define GET_THREADRESULTS (long) 137#define SET_THREADRESULTS (long) 138#define GET_PARSELINE (long) 139#define SET_PARSELINE (long) 140#define GET_NEWSRCQUERY (long) 141#define SET_NEWSRCQUERY (long) 142#define GET_ALTOPTIONNAME (long) 143#define SET_ALTOPTIONNAME (long) 144#define GET_FREEENVELOPESPAREP (long) 145#define SET_FREEENVELOPESPAREP (long) 146#define GET_FREEELTSPAREP (long) 147#define SET_FREEELTSPAREP (long) 148 /* 2xx: environment */#define GET_USERNAME (long) 201#define SET_USERNAME (long) 202#define GET_HOMEDIR (long) 203#define SET_HOMEDIR (long) 204#define GET_LOCALHOST (long) 205#define SET_LOCALHOST (long) 206#define GET_SYSINBOX (long) 207#define SET_SYSINBOX (long) 208#define GET_USERPROMPT (long) 209#define SET_USERPROMPT (long) 210 /* 3xx: TCP/IP */#define GET_OPENTIMEOUT (long) 300#define SET_OPENTIMEOUT (long) 301#define GET_READTIMEOUT (long) 302#define SET_READTIMEOUT (long) 303#define GET_WRITETIMEOUT (long) 304#define SET_WRITETIMEOUT (long) 305#define GET_CLOSETIMEOUT (long) 306#define SET_CLOSETIMEOUT (long) 307#define GET_TIMEOUT (long) 308#define SET_TIMEOUT (long) 309#define GET_RSHTIMEOUT (long) 310#define SET_RSHTIMEOUT (long) 311#define GET_ALLOWREVERSEDNS (long) 312#define SET_ALLOWREVERSEDNS (long) 313#define GET_RSHCOMMAND (long) 314#define SET_RSHCOMMAND (long) 315#define GET_RSHPATH (long) 316#define SET_RSHPATH (long) 317#define GET_SSHTIMEOUT (long) 318#define SET_SSHTIMEOUT (long) 319#define GET_SSHCOMMAND (long) 320#define SET_SSHCOMMAND (long) 321#define GET_SSHPATH (long) 322#define SET_SSHPATH (long) 323 /* 4xx: network drivers */#define GET_MAXLOGINTRIALS (long) 400#define SET_MAXLOGINTRIALS (long) 401#define GET_LOOKAHEAD (long) 402#define SET_LOOKAHEAD (long) 403#define GET_IMAPPORT (long) 404#define SET_IMAPPORT (long) 405#define GET_PREFETCH (long) 406#define SET_PREFETCH (long) 407#define GET_CLOSEONERROR (long) 408#define SET_CLOSEONERROR (long) 409#define GET_POP3PORT (long) 410#define SET_POP3PORT (long) 411#define GET_UIDLOOKAHEAD (long) 412#define SET_UIDLOOKAHEAD (long) 413#define GET_NNTPPORT (long) 414#define SET_NNTPPORT (long) 415#define GET_IMAPENVELOPE (long) 416#define SET_IMAPENVELOPE (long) 417#define GET_IMAPREFERRAL (long) 418#define SET_IMAPREFERRAL (long) 419#define GET_ALTIMAPNAME (long) 420#define SET_ALTIMAPNAME (long) 421#define GET_ALTIMAPPORT (long) 422#define SET_ALTIMAPPORT (long) 423#define GET_ALTPOPNAME (long) 424#define SET_ALTPOPNAME (long) 425#define GET_ALTPOPPORT (long) 426#define SET_ALTPOPPORT (long) 427#define GET_ALTNNTPNAME (long) 428#define SET_ALTNNTPNAME (long) 429#define GET_ALTNNTPPORT (long) 430#define SET_ALTNNTPPORT (long) 431#define GET_ALTSMTPNAME (long) 432#define SET_ALTSMTPNAME (long) 433#define GET_ALTSMTPPORT (long) 434#define SET_ALTSMTPPORT (long) 435#define GET_SMTPPORT (long) 436#define SET_SMTPPORT (long) 437#define GET_IMAPEXTRAHEADERS (long) 438#define SET_IMAPEXTRAHEADERS (long) 439#define GET_ACL (long) 440#define SET_ACL (long) 441#define GET_LISTRIGHTS (long) 442#define SET_LISTRIGHTS (long) 443#define GET_MYRIGHTS (long) 444#define SET_MYRIGHTS (long) 445#define GET_QUOTA (long) 446#define SET_QUOTA (long) 447#define GET_QUOTAROOT (long) 448#define SET_QUOTAROOT (long) 449 /* 5xx: local file drivers */#define GET_MBXPROTECTION (long) 500#define SET_MBXPROTECTION (long) 501#define GET_DIRPROTECTION (long) 502#define SET_DIRPROTECTION (long) 503#define GET_LOCKPROTECTION (long) 504#define SET_LOCKPROTECTION (long) 505#define GET_FROMWIDGET (long) 506#define SET_FROMWIDGET (long) 507#define GET_NEWSACTIVE (long) 508#define SET_NEWSACTIVE (long) 509#define GET_NEWSSPOOL (long) 510#define SET_NEWSSPOOL (long) 511#define GET_NEWSRC (long) 512#define SET_NEWSRC (long) 513#define GET_EXTENSION (long) 514#define SET_EXTENSION (long) 515#define GET_DISABLEFCNTLLOCK (long) 516#define SET_DISABLEFCNTLLOCK (long) 517#define GET_LOCKEACCESERROR (long) 518#define SET_LOCKEACCESERROR (long) 519#define GET_LISTMAXLEVEL (long) 520#define SET_LISTMAXLEVEL (long) 521#define GET_ANONYMOUSHOME (long) 522#define SET_ANONYMOUSHOME (long) 523#define GET_FTPHOME (long) 524#define SET_FTPHOME (long) 525#define GET_PUBLICHOME (long) 526#define SET_PUBLICHOME (long) 527#define GET_SHAREDHOME (long) 528#define SET_SHAREDHOME (long) 529#define GET_MHPROFILE (long) 530#define SET_MHPROFILE (long) 531#define GET_MHPATH (long) 532#define SET_MHPATH (long) 533#define GET_ONETIMEEXPUNGEATPING (long) 534#define SET_ONETIMEEXPUNGEATPING (long) 535#define GET_USERHASNOLIFE (long) 536#define SET_USERHASNOLIFE (long) 537#define GET_FTPPROTECTION (long) 538#define SET_FTPPROTECTION (long) 539#define GET_PUBLICPROTECTION (long) 540#define SET_PUBLICPROTECTION (long) 541#define GET_SHAREDPROTECTION (long) 542#define SET_SHAREDPROTECTION (long) 543#define GET_LOCKTIMEOUT (long) 544#define SET_LOCKTIMEOUT (long) 545#define GET_NOTIMEZONES (long) 546#define SET_NOTIMEZONES (long) 547#define GET_HIDEDOTFILES (long) 548#define SET_HIDEDOTFILES (long) 549/* Driver flags */#define DR_DISABLE (long) 1 /* driver is disabled */#define DR_LOCAL (long) 2 /* local file driver */#define DR_MAIL (long) 4 /* supports mail */#define DR_NEWS (long) 8 /* supports news */#define DR_READONLY (long) 16 /* driver only allows readonly access */#define DR_NOFAST (long) 32 /* "fast" data is slow (whole msg fetch) */#define DR_NAMESPACE (long) 64 /* driver has a special namespace */#define DR_LOWMEM (long) 128 /* low amounts of memory available */#define DR_LOCKING (long) 256 /* driver does locking */#define DR_CRLF (long) 512 /* driver internal form uses CRLF newlines */#define DR_NOSTICKY (long) 1024 /* driver does not support sticky UIDs */#define DR_RECYCLE (long) 2048 /* driver does stream recycling *//* Cache management function codes */#define CH_INIT (long) 10 /* initialize cache */#define CH_SIZE (long) 11 /* (re-)size the cache */#define CH_MAKEELT (long) 30 /* return elt, make if needed */#define CH_ELT (long) 31 /* return elt if exists */#define CH_SORTCACHE (long) 35 /* return sortcache entry, make if needed */#define CH_FREE (long) 40 /* free space used by elt */ /* free space used by sortcache */#define CH_FREESORTCACHE (long) 43#define CH_EXPUNGE (long) 45 /* delete elt pointer from list *//* Open options */#define OP_DEBUG (long) 1 /* debug protocol negotiations */#define OP_READONLY (long) 2 /* read-only open */#define OP_ANONYMOUS (long) 4 /* anonymous open of newsgroup */#define OP_SHORTCACHE (long) 8 /* short (elt-only) caching */#define OP_SILENT (long) 16 /* don't pass up events (internal use) */#define OP_PROTOTYPE (long) 32 /* return driver prototype */#define OP_HALFOPEN (long) 64 /* half-open (IMAP connect but no select) */#define OP_EXPUNGE (long) 128 /* silently expunge recycle stream */#define OP_SECURE (long) 256 /* don't do non-secure authentication */#define OP_TRYALT (long) 512 /* try alternate first */#define OP_MULNEWSRC (long) 1024/* use multiple newsrc files *//* Net open options */ /* no error messages */#define NET_SILENT ((unsigned long) 0x80000000) /* alternative option */#define NET_ALTOPT ((unsigned long) 0x40000000) /* no open timeout */#define NET_NOOPENTIMEOUT ((unsigned long) 0x20000000)/* Close options */#define CL_EXPUNGE (long) 1 /* expunge silently *//* Fetch options */#define FT_UID (long) 1 /* argument is a UID */#define FT_PEEK (long) 2 /* peek at data */#define FT_NOT (long) 4 /* NOT flag for header lines fetch */#define FT_INTERNAL (long) 8 /* text can be internal strings */#define FT_PREFETCHTEXT (long) 16 /* IMAP prefetch text when fetching header *//* Flagging options */#define ST_UID (long) 1 /* argument is a UID sequence */#define ST_SILENT (long) 2 /* don't return results */#define ST_SET (long) 4 /* set vs. clear *//* Copy options */#define CP_UID (long) 1 /* argument is a UID sequence */#define CP_MOVE (long) 2 /* delete from source after copying *//* Search/sort options */#define SE_UID (long) 1 /* return UID */#define SE_FREE (long) 2 /* free search program after finished */#define SE_NOPREFETCH (long) 4 /* no search prefetching */#define SO_FREE (long) 8 /* free sort program after finished */#define SO_NOSERVER (long) 16 /* don't do server-based sort */#define SE_RETAIN (long) 32 /* retain previous search results */#define SO_OVERVIEW (long) 64 /* use overviews in searching (NNTP only) *//* Status options */#define SA_MESSAGES (long) 1 /* number of messages */#define SA_RECENT (long) 2 /* number of recent messages */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -