/* GNU Mailutils -- a suite of utilities for electronic mail Copyright (C) 1999-2019 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library. If not, see . */ #ifndef _MAILUTILS_HEADER_H #define _MAILUTILS_HEADER_H #include #ifdef __cplusplus extern "C" { #endif #define MU_HEADER_UNIX_FROM "From " #define MU_HEADER_RETURN_PATH "Return-Path" #define MU_HEADER_RECEIVED "Received" #define MU_HEADER_DATE "Date" #define MU_HEADER_DCC "Dcc" #define MU_HEADER_FROM "From" #define MU_HEADER_SENDER "Sender" #define MU_HEADER_RESENT_FROM "Resent-From" #define MU_HEADER_SUBJECT "Subject" #define MU_HEADER_RESENT_SENDER "Resent-Sender" #define MU_HEADER_TO "To" #define MU_HEADER_RESENT_TO "Resent-To" #define MU_HEADER_CC "Cc" #define MU_HEADER_RESENT_CC "Resent-Cc" #define MU_HEADER_BCC "Bcc" #define MU_HEADER_RESENT_BCC "Resent-Bcc" #define MU_HEADER_REPLY_TO "Reply-To" #define MU_HEADER_RESENT_REPLY_TO "Resent-Reply-To" #define MU_HEADER_MESSAGE_ID "Message-ID" #define MU_HEADER_RESENT_MESSAGE_ID "Resent-Message-ID" #define MU_HEADER_IN_REPLY_TO "In-Reply-To" #define MU_HEADER_REFERENCE "Reference" #define MU_HEADER_REFERENCES "References" #define MU_HEADER_ENCRYPTED "Encrypted" #define MU_HEADER_PRECEDENCE "Precedence" #define MU_HEADER_STATUS "Status" #define MU_HEADER_CONTENT_LENGTH "Content-Length" #define MU_HEADER_CONTENT_LANGUAGE "Content-Language" #define MU_HEADER_CONTENT_TRANSFER_ENCODING "Content-Transfer-Encoding" #define MU_HEADER_CONTENT_ID "Content-ID" #define MU_HEADER_CONTENT_TYPE "Content-Type" #define MU_HEADER_CONTENT_DESCRIPTION "Content-Description" #define MU_HEADER_CONTENT_DISPOSITION "Content-Disposition" #define MU_HEADER_CONTENT_MD5 "Content-MD5" #define MU_HEADER_CONTENT_LOCATION "Content-Location" #define MU_HEADER_MIME_VERSION "MIME-Version" #define MU_HEADER_X_MAILER "X-Mailer" #define MU_HEADER_X_UIDL "X-UIDL" #define MU_HEADER_X_UID "X-UID" #define MU_HEADER_X_IMAPBASE "X-IMAPbase" #define MU_HEADER_ENV_SENDER "X-Envelope-Sender" #define MU_HEADER_ENV_DATE "X-Envelope-Date" #define MU_HEADER_FCC "Fcc" #define MU_HEADER_DELIVERY_DATE "Delivery-Date" #define MU_HEADER_ENVELOPE_TO "Envelope-To" #define MU_HEADER_X_EXPIRE_TIMESTAMP "X-Expire-Timestamp" #define MU_HEADER_REPLACE 0x01 #define MU_HEADER_BEFORE 0x02 extern int mu_header_create (mu_header_t *, const char *, size_t); extern void mu_header_destroy (mu_header_t *); extern int mu_header_invalidate (mu_header_t); extern int mu_header_clear (mu_header_t header); extern int mu_header_is_modified (mu_header_t); extern int mu_header_clear_modified (mu_header_t); /* Set and get field values by field name. */ extern int mu_header_set_value (mu_header_t, const char *, const char *, int); extern int mu_header_remove (mu_header_t, const char *, int); extern int mu_header_append (mu_header_t header, const char *fn, const char *fv); extern int mu_header_prepend (mu_header_t header, const char *fn, const char *fv); extern int mu_header_insert (mu_header_t, const char *, const char *, const char *, int, int); extern int mu_header_sget_value_n (mu_header_t, const char *, int, const char **); #define mu_header_sget_value(header, name, pval) \ mu_header_sget_value_n (header, name, 1, pval) extern int mu_header_get_value_n (mu_header_t, const char *, int, char *, size_t, size_t *); #define mu_header_get_value(header, name, buffer, buflen, pn) \ mu_header_get_value_n (header, name, 1, buffer, buflen, pn) extern int mu_header_aget_value_n (mu_header_t, const char *, int, char **); #define mu_header_aget_value(header, name, pptr) \ mu_header_aget_value_n (header, name, 1, pptr) int mu_header_sget_firstof (mu_header_t hdr, char **names, const char **pval, int *pidx); /* Get field values as an mu_address_t. */ extern int mu_header_get_address_n (mu_header_t, const char *, int, mu_address_t *); #define mu_header_get_address(header, name, addr) \ mu_header_get_address_n (header, name, 1, addr) /* Set and get field values by field index (1-based). */ extern int mu_header_get_field_count (mu_header_t, size_t *count); extern int mu_header_sget_field_name (mu_header_t, size_t index, const char **); extern int mu_header_get_field_name (mu_header_t, size_t index, char *, size_t, size_t *); extern int mu_header_aget_field_name (mu_header_t, size_t index, char **); extern int mu_header_sget_field_value (mu_header_t, size_t index, const char **); extern int mu_header_get_field_value (mu_header_t, size_t index, char *, size_t, size_t *); extern int mu_header_aget_field_value (mu_header_t, size_t index, char **); extern int mu_header_get_value_unfold_n (mu_header_t header, const char *name, int n, char *buffer, size_t buflen, size_t *pn); #define mu_header_get_value_unfold(header, name, buffer, buflen, pn) \ mu_header_get_value_unfold_n (header, name, 1, buffer, buflen, pn) extern int mu_header_aget_value_unfold_n (mu_header_t header, const char *name, int n, char **pvalue); #define mu_header_aget_value_unfold(header, name, pvalue) \ mu_header_aget_value_unfold_n (header, name, 1, pvalue) extern int mu_header_get_field_value_unfold (mu_header_t header, size_t num, char *buf, size_t buflen, size_t *nwritten); extern int mu_header_aget_field_value_unfold (mu_header_t header, size_t num, char **pvalue); extern int mu_header_get_stream (mu_header_t, mu_stream_t *) MU_DEPRECATED; extern int mu_header_get_streamref (mu_header_t, mu_stream_t *); /* FIXME: This function does not exist: extern int mu_header_set_stream (mu_header_t, mu_stream_t, void *); */ extern int mu_header_size (mu_header_t, size_t *); extern int mu_header_lines (mu_header_t, size_t *); extern int mu_header_get_iterator (mu_header_t, mu_iterator_t *); extern int mu_header_set_fill (mu_header_t, int (*_fill) (void *data, char **, size_t *), void *data); extern int mu_header_get_itemptr (mu_header_t header, size_t num, const void **sptr); #ifdef __cplusplus } #endif #endif /* _MAILUTILS_HEADER_H */