⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mail.h

📁 Vovida 社区开源的 SIP 协议源码
💻 H
📖 第 1 页 / 共 4 页
字号:
#define SA_UNSEEN (long) 4	/* number of unseen messages */#define SA_UIDNEXT (long) 8	/* next UID to be assigned */#define SA_UIDVALIDITY (long) 16/* UID validity value *//* Mailgets flags */#define MG_UID (long) 1		/* message number is a UID */#define MG_COPY (long) 2	/* must return copy of argument *//* SASL authenticator categories */#define AU_SECURE (long) 1	/* /secure allowed */#define AU_AUTHUSER (long) 2	/* /authuser=xxx allowed *//* Garbage collection flags */#define GC_ELT (long) 1		/* message cache elements */#define GC_ENV (long) 2		/* envelopes and bodies */#define GC_TEXTS (long) 4	/* cached texts *//* Bits for mm_list() and mm_lsub() */#define LATT_NOINFERIORS (long) 1#define LATT_NOSELECT (long) 2#define LATT_MARKED (long) 4#define LATT_UNMARKED (long) 8#define LATT_REFERRAL (long) 16/* Sort functions */#define SORTDATE 0		/* date */#define SORTARRIVAL 1		/* arrival date */#define SORTFROM 2		/* from */#define SORTSUBJECT 3		/* subject */#define SORTTO 4		/* to */#define SORTCC 5		/* cc */#define SORTSIZE 6		/* size *//* imapreferral_t codes */#define REFAUTHFAILED (long) 0	/* authentication referral -- not logged in */#define REFAUTH (long) 1	/* authentication referral -- logged in */#define REFSELECT (long) 2	/* select referral */#define REFCREATE (long) 3#define REFDELETE (long) 4#define REFRENAME (long) 5#define REFSUBSCRIBE (long) 6#define REFUNSUBSCRIBE (long) 7#define REFSTATUS (long) 8#define REFCOPY (long) 9#define REFAPPEND (long) 10/* Block notification codes */#define BLOCK_NONE 0		/* not blocked */#define BLOCK_SENSITIVE 1	/* sensitive code, disallow alarms */#define BLOCK_NONSENSITIVE 2	/* non-sensitive code, allow alarms */#define BLOCK_DNSLOOKUP 10	/* blocked on DNS lookup */#define BLOCK_TCPOPEN 11	/* blocked on TCP open */#define BLOCK_TCPREAD 12	/* blocked on TCP read */#define BLOCK_TCPWRITE 13	/* blocked on TCP write */#define BLOCK_TCPCLOSE 14	/* blocked on TCP close */#define BLOCK_FILELOCK 20	/* blocked on file locking *//* In-memory sized-text */#define SIZEDTEXT struct mail_sizedtextSIZEDTEXT {  unsigned char *data;		/* text */  unsigned long size;		/* size of text in octets */};/* String list */#define STRINGLIST struct string_listSTRINGLIST {  SIZEDTEXT text;		/* string text */  STRINGLIST *next;};/* Parse results from mail_valid_net_parse */#define NETMAXHOST 65#define NETMAXUSER 65#define NETMAXMBX (MAILTMPLEN/4)#define NETMAXSRV 21typedef struct net_mailbox {  char host[NETMAXHOST];	/* host name (may be canonicalized) */  char orighost[NETMAXHOST];	/* host name before canonicalization */  char user[NETMAXUSER];	/* user name */  char authuser[NETMAXUSER];	/* authentication user name */  char mailbox[NETMAXMBX];	/* mailbox name */  char service[NETMAXSRV];	/* service name */  unsigned long port;		/* TCP port number */  unsigned int anoflag : 1;	/* anonymous */  unsigned int dbgflag : 1;	/* debug flag */  unsigned int secflag : 1;	/* secure flag */  unsigned int altflag : 1;	/* alt driver flag */  unsigned int tryaltflag : 1;	/* (internal) try alt driver first flag */  unsigned int altopt : 1;	/* alt option flag */} NETMBX;/* Item in an address list */#define ADDRESS struct mail_addressADDRESS {  char *personal;		/* personal name phrase */  char *adl;			/* at-domain-list source route */  char *mailbox;		/* mailbox name */  char *host;			/* domain name of mailbox's host */  char *error;			/* error in address from SMTP module */  ADDRESS *next;		/* pointer to next address in list */};/* Message envelope */typedef struct mail_envelope {  unsigned int ngbogus : 1;	/* newsgroups may be bogus */  unsigned int incomplete : 1;	/* envelope may be incomplete */  char *remail;			/* remail header if any */  ADDRESS *return_path;		/* error return address */  char *date;			/* message composition date string */  ADDRESS *from;		/* originator address list */  ADDRESS *sender;		/* sender address list */  ADDRESS *reply_to;		/* reply address list */  char *subject;		/* message subject string */  ADDRESS *to;			/* primary recipient list */  ADDRESS *cc;			/* secondary recipient list */  ADDRESS *bcc;			/* blind secondary recipient list */  char *in_reply_to;		/* replied message ID */  char *message_id;		/* message ID */  char *newsgroups;		/* USENET newsgroups */  char *followup_to;		/* USENET reply newsgroups */  char *references;		/* USENET references */  void *sparep;			/* spare pointer reserved for main program */} ENVELOPE;/* Primary body types *//* If you change any of these you must also change body_types in rfc822.c */#define TYPETEXT 0		/* unformatted text */#define TYPEMULTIPART 1		/* multiple part */#define TYPEMESSAGE 2		/* encapsulated message */#define TYPEAPPLICATION 3	/* application data */#define TYPEAUDIO 4		/* audio */#define TYPEIMAGE 5		/* static image */#define TYPEVIDEO 6		/* video */#define TYPEMODEL 7		/* model */#define TYPEOTHER 8		/* unknown */#define TYPEMAX 15		/* maximum type code *//* Body encodings *//* If you change any of these you must also change body_encodings in rfc822.c */#define ENC7BIT 0		/* 7 bit SMTP semantic data */#define ENC8BIT 1		/* 8 bit SMTP semantic data */#define ENCBINARY 2		/* 8 bit binary data */#define ENCBASE64 3		/* base-64 encoded data */#define ENCQUOTEDPRINTABLE 4	/* human-readable 8-as-7 bit data */#define ENCOTHER 5		/* unknown */#define ENCMAX 10		/* maximum encoding code *//* Body contents */#define BODY struct mail_bodystruct#define MESSAGE struct mail_body_message#define PARAMETER struct mail_body_parameter#define PART struct mail_body_part#define PARTTEXT struct mail_body_text/* Message body text */PARTTEXT {  unsigned long offset;		/* offset from body origin */  SIZEDTEXT text;		/* text */};/* Message body structure */BODY {  unsigned short type;		/* body primary type */  unsigned short encoding;	/* body transfer encoding */  char *subtype;		/* subtype string */  PARAMETER *parameter;		/* parameter list */  char *id;			/* body identifier */  char *description;		/* body description */  struct {			/* body disposition */    char *type;			/* disposition type */    PARAMETER *parameter;	/* disposition parameters */  } disposition;  STRINGLIST *language;		/* body language */  PARTTEXT mime;		/* MIME header */  PARTTEXT contents;		/* body part contents */  union {			/* different ways of accessing contents */    PART *part;			/* body part list */    MESSAGE *msg;		/* body encapsulated message */  } nested;  struct {    unsigned long lines;	/* size of text in lines */    unsigned long bytes;	/* size of text in octets */  } size;  char *md5;			/* MD5 checksum */};/* Parameter list */PARAMETER {  char *attribute;		/* parameter attribute name */  char *value;			/* parameter value */  PARAMETER *next;		/* next parameter in list */};/* Multipart content list */PART {  BODY body;			/* body information for this part */  PART *next;			/* next body part */};/* RFC-822 Message */MESSAGE {  ENVELOPE *env;		/* message envelope */  BODY *body;			/* message body */  PARTTEXT full;		/* full message */  STRINGLIST *lines;		/* lines used to filter header */  PARTTEXT header;		/* header text */  PARTTEXT text;		/* body text */};/* Entry in the message cache array */typedef struct message_cache {  unsigned long msgno;		/* message number */  unsigned int lockcount : 8;	/* non-zero if multiple references */  unsigned long rfc822_size;	/* # of bytes of message as raw RFC822 */  struct {			/* c-client internal use only */    unsigned long uid;		/* message unique ID */    PARTTEXT special;		/* special text pointers */    MESSAGE msg;		/* internal message pointers */    unsigned int sequence : 1;	/* saved sequence bit */    unsigned int dirty : 1;	/* driver internal use */    unsigned long data;		/* driver internal use */  } private;			/* internal date */  unsigned int day : 5;		/* day of month (1-31) */  unsigned int month : 4;	/* month of year (1-12) */  unsigned int year : 7;	/* year since BASEYEAR (expires in 127 yrs) */  unsigned int hours: 5;	/* hours (0-23) */  unsigned int minutes: 6;	/* minutes (0-59) */  unsigned int seconds: 6;	/* seconds (0-59) */  unsigned int zoccident : 1;	/* non-zero if west of UTC */  unsigned int zhours : 4;	/* hours from UTC (0-12) */  unsigned int zminutes: 6;	/* minutes (0-59) */			/* system flags */  unsigned int seen : 1;	/* system Seen flag */  unsigned int deleted : 1;	/* system Deleted flag */  unsigned int flagged : 1; 	/* system Flagged flag */  unsigned int answered : 1;	/* system Answered flag */  unsigned int draft : 1;	/* system Draft flag */  unsigned int recent : 1;	/* system Recent flag */			/* message status */  unsigned int valid : 1;	/* elt has valid flags */  unsigned int searched : 1;	/* message was searched */  unsigned int sequence : 1;	/* message is in sequence */			/* reserved for use by main program */  unsigned int spare : 1;	/* first spare bit */  unsigned int spare2 : 1;	/* second spare bit */  unsigned int spare3 : 1;	/* third spare bit */  void *sparep;			/* spare pointer */  unsigned long user_flags;	/* user-assignable flags */} MESSAGECACHE;/* String structure */#define STRINGDRIVER struct string_drivertypedef struct mailstring {  void *data;			/* driver-dependent data */  unsigned long data1;		/* driver-dependent data */  unsigned long size;		/* total length of string */  char *chunk;			/* base address of chunk */  unsigned long chunksize;	/* size of chunk */  unsigned long offset;		/* offset of this chunk in base */  char *curpos;			/* current position in chunk */  unsigned long cursize;	/* number of bytes remaining in chunk */  STRINGDRIVER *dtb;		/* driver that handles this type of string */} STRING;/* Dispatch table for string driver */STRINGDRIVER {				/* initialize string driver */  void (*init) (STRING *s,void *data,unsigned long size);				/* get next character in string */  char (*next) (STRING *s);				/* set position in string */  void (*setpos) (STRING *s,unsigned long i);};/* Stringstruct access routines */#define INIT(s,d,data,size) ((*((s)->dtb = &d)->init) (s,data,size))#define SIZE(s) ((s)->size - GETPOS (s))#define CHR(s) (*(s)->curpos)#define SNX(s) (--(s)->cursize ? *(s)->curpos++ : (*(s)->dtb->next) (s))#define GETPOS(s) ((s)->offset + ((s)->curpos - (s)->chunk))#define SETPOS(s,i) (*(s)->dtb->setpos) (s,i)/* Search program */#define SEARCHPGM struct search_program#define SEARCHHEADER struct search_header#define SEARCHSET struct search_set#define SEARCHOR struct search_or#define SEARCHPGMLIST struct search_pgm_listSEARCHHEADER {			/* header search */  SIZEDTEXT line;		/* header line */  SIZEDTEXT text;		/* text in header */  SEARCHHEADER *next;		/* next in list */};SEARCHSET {			/* message set */  unsigned long first;		/* sequence number */  unsigned long last;		/* last value, if a range */  SEARCHSET *next;		/* next in list */};SEARCHOR {  SEARCHPGM *first;		/* first program */  SEARCHPGM *second;		/* second program */  SEARCHOR *next;		/* next in list */};SEARCHPGMLIST {  SEARCHPGM *pgm;		/* search program */  SEARCHPGMLIST *next;		/* next in list */};SEARCHPGM {			/* search program */  SEARCHSET *msgno;		/* message numbers */  SEARCHSET *uid;		/* unique identifiers */  SEARCHOR *search_or;		/* or'ed in programs */  SEARCHPGMLIST *search_not;	/* and'ed not program */  SEARCHHEADER *header;		/* list of headers */  STRINGLIST *bcc;		/* bcc recipients */  STRINGLIST *body;		/* text in message body */  STRINGLIST *cc;		/* cc recipients */  STRINGLIST *from;		/* originator */  STRINGLIST *keyword;		/* keywords */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -