3.1.6 Headers

 
/* Prefix mu_header_ is reserved. */
#include <mailutils/header.h>

So far we plan support for RFC822 and plan for RFC1522. With RFC1522 non-ASCII characters will be encoded.

Function: int mu_header_create (mu_header_t *hdr, const char *blurb, size_t len, void *owner)

Initialize a hdr to a supported type. If blurb is not NULL, it is parsed.

Function: void mu_header_destroy (mu_header_t *hdr, void *owner)

The resources allocated for hdr are freed.

Function: void* mu_header_get_owner (mu_header_t *hdr)
Function: int mu_header_is_modified (mu_header_t hdr)
Function: int mu_header_clear_modified (mu_header_t hdr)
Function: int mu_header_set_value (mu_header_t hdr, const char *fn, const char *fv, int n)

Some basic macros are already provided for RFC822.

MU_HEADER_UNIX_FROM

From

MU_HEADER_RETURN_PATH

Return-Path

MU_HEADER_RECEIVED

Received

MU_HEADER_DATE

Date

MU_HEADER_FROM

From

MU_HEADER_SENDER

Sender

MU_HEADER_RESENT_FROM

Resent-From

MU_HEADER_SUBJECT

Subject

MU_HEADER_SENDER

Sender

MU_HEADER_RESENT_SENDER

Resent-SENDER

MU_HEADER_TO

To

MU_HEADER_RESENT_TO

Resent-To

MU_HEADER_CC

Cc

MU_HEADER_RESENT_CC

Resent-Cc

MU_HEADER_BCC

Bcc

MU_HEADER_RESENT_BCC

Resent-Bcc

MU_HEADER_REPLY_TO

Reply-To

MU_HEADER_RESENT_REPLY_TO

Resent-Reply-To

MU_HEADER_MESSAGE_ID

Message-ID

MU_HEADER_RESENT_MESSAGE_ID

Resent-Message-ID

MU_HEADER_IN_REPLY_TO

In-Reply-To

MU_HEADER_REFERENCE

Reference

MU_HEADER_REFERENCES

References

MU_HEADER_ENCRYPTED

Encrypted

MU_HEADER_PRECEDENCE

Precedence

MU_HEADER_STATUS

Status

MU_HEADER_CONTENT_LENGTH

Content-Length

MU_HEADER_CONTENT_LANGUAGE

Content-Language

MU_HEADER_CONTENT_TRANSFER_ENCODING

Content-transfer-encoding

MU_HEADER_CONTENT_ID

Content-ID

MU_HEADER_CONTENT_TYPE

Content-Type

MU_HEADER_CONTENT_DESCRIPTION

Content-Description

MU_HEADER_CONTENT_DISPOSITION

Content-Disposition

MU_HEADER_CONTENT_MD5

Content-MD5

MU_HEADER_MIME_VERSION

MIME-Version

MU_HEADER_X_UIDL

X-UIDL

MU_HEADER_X_UID

X-UID

MU_HEADER_X_IMAPBASE

X-IMAPbase

MU_HEADER_ENV_SENDER

X-Envelope-Sender

MU_HEADER_ENV_DATE

X-Envelope-Date

MU_HEADER_FCC

Fcc

MU_HEADER_DELIVERY_DATE

Delivery-date

MU_HEADER_ENVELOPE_TO

Envelope-to

Function: int mu_header_get_value (mu_header_t hdr, const char *fn, char *fv, size_t len, size_t *n)

Value of field-name fn is returned in buffer fv of size len. The number of bytes written is put in n.

Function: int mu_header_aget_value (mu_header_t hdr, const char *fn, char **fv)

The value is allocated.

Function: int mu_header_get_address (mu_header_t hdr, const char *buf, address_t *addr)
Function: int mu_header_get_stream (mu_header_t hdr, stream_t *stream)
Function: int mu_header_set_stream (mu_header_t hdr, stream_t stream, void *)
Function: int mu_header_get_field_count (mu_header_t hdr, size_t *count)
Function: int mu_header_get_field_value (mu_header_t hdr, size_t index, char *, size_t, size_t *)
Function: int mu_header_get_field_name (mu_header_t hdr, size_t index, char *, size_t, size_t *)
Function: int mu_header_aget_field_value (mu_header_t hdr, size_t index, char **)
Function: int mu_header_aget_field_name (mu_header_t hdr, size_t index, char **)
Function: int mu_header_get_value_unfold (mu_header_t hdr, const char *name, char *buffer, size_t buflen, size_t *n)
Function: int mu_header_aget_value_unfold (mu_header_t hdr, const char *name, char **value)
Function: int mu_header_get_field_value_unfold (mu_header_t hdr, size_t num, char *buf, size_t buflen, size_t *nwritten)
Function: int mu_header_aget_field_value_unfold (mu_header_t hdr, size_t num, char **value);
Function: int mu_header_size (mu_header_t hdr, size_t *);
Function: int mu_header_lines (mu_header_t hdr, size_t *);
Function: int mu_header_set_set_value (mu_header_t hdr, int (*_set_value) (mu_header_t, const char *, const char *, int), void *);
Function: int mu_header_set_get_value (mu_header_t hdr, int (*_get_value) (mu_header_t, const char *, char *, size_t, size_t *), void *);
Function: int mu_header_set_get_fvalue (mu_header_t hdr, int (*_get_value) (mu_header_t, const char *, char *, size_t, size_t *), void *);
Function: int mu_header_set_size (mu_header_t hdr, int (*_size) (mu_header_t, size_t *), void *);
Function: int mu_header_set_lines (mu_header_t hdr, int (*_lines) (mu_header_t, size_t *), void *);
Function: int mu_header_set_fill (mu_header_t hdr, int (*_fill) (mu_header_t, char *, size_t, mu_off_t, size_t *), void *owner);