## GMimeMessage GMimeMessage — Messages |

## Synopsis

    #define             GMIME_RECIPIENT_TYPE_TO
    #define             GMIME_RECIPIENT_TYPE_CC
    #define             GMIME_RECIPIENT_TYPE_BCC
                        GMimeMessage;
    GMimeMessage*       g_mime_message_new                  (gboolean pretty_headers);
    void                g_mime_message_set_sender           (GMimeMessage *message,
                                                             const char *sender);
    const char*         g_mime_message_get_sender           (GMimeMessage *message);
    void                g_mime_message_set_reply_to         (GMimeMessage *message,
                                                             const char *reply_to);
    const char*         g_mime_message_get_reply_to         (GMimeMessage *message);
    void                g_mime_message_add_recipient        (GMimeMessage *message,
                                                             const char *type,
                                                             const char *name,
                                                             const char *address);
    void                g_mime_message_add_recipients_from_string
                                                            (GMimeMessage *message,
                                                             const char *type,
                                                             const char *string);
    const InternetAddressList* g_mime_message_get_recipients
                                                            (GMimeMessage *message,
                                                             const char *type);
    InternetAddressList* g_mime_message_get_all_recipients  (GMimeMessage *message);
    void                g_mime_message_set_subject          (GMimeMessage *message,
                                                             const char *subject);
    const char*         g_mime_message_get_subject          (GMimeMessage *message);
    void                g_mime_message_set_date             (GMimeMessage *message,
                                                             time_t date,
                                                             int gmt_offset);
    void                g_mime_message_get_date             (GMimeMessage *message,
                                                             time_t *date,
                                                             int *gmt_offset);
    char*               g_mime_message_get_date_string      (GMimeMessage *message);
    void                g_mime_message_set_message_id       (GMimeMessage *message,
                                                             const char *message_id);
    const char*         g_mime_message_get_message_id       (GMimeMessage *message);
    void                g_mime_message_add_header           (GMimeMessage *message,
                                                             const char *header,
                                                             const char *value);
    void                g_mime_message_set_header           (GMimeMessage *message,
                                                             const char *header,
                                                             const char *value);
    const char*         g_mime_message_get_header           (GMimeMessage *message,
                                                             const char *header);
    void                g_mime_message_set_mime_part        (GMimeMessage *message,
                                                             GMimeObject *mime_part);
    GMimeObject*        g_mime_message_get_mime_part        (GMimeMessage *message);
    ssize_t             g_mime_message_write_to_stream      (GMimeMessage *message,
                                                             GMimeStream *stream);
    char*               g_mime_message_to_string            (GMimeMessage *message);
    char*               g_mime_message_get_body             (const GMimeMessage *message,
                                                             gboolean want_plain,
                                                             gboolean *is_html);
    char*               g_mime_message_get_headers          (GMimeMessage *message);
    void                g_mime_message_foreach_part         (GMimeMessage *message,
                                                             GMimePartFunc callback,
                                                             gpointer data);

## Object Hierarchy

      GObject
       +----GMimeObject
             +----GMimeMessage

## Description

A GMimeMessage represents an rfc822 message.

## Details

### GMIME_RECIPIENT_TYPE_TO

    #define	GMIME_RECIPIENT_TYPE_TO  "To"

Recipients in the To: header.

### GMIME_RECIPIENT_TYPE_CC

    #define	GMIME_RECIPIENT_TYPE_CC  "Cc"

Recipients in the Cc: header.

### GMIME_RECIPIENT_TYPE_BCC

    #define	GMIME_RECIPIENT_TYPE_BCC "Bcc"

Recipients in the Bcc: header.

### GMimeMessage

    typedef struct _GMimeMessage GMimeMessage;

### g_mime_message_new ()

    GMimeMessage*       g_mime_message_new                  (gboolean pretty_headers);

If `pretty_headers` is `TRUE`, then the standard rfc822 headers are initialized so as to put headers in a nice friendly order. This is strictly a cosmetic thing, so if you are unsure, it is safe to say no (`FALSE`).

`pretty_headers` : | make pretty headers
Returns : | an empty MIME Message object.

### g_mime_message_set_sender ()

    void                g_mime_message_set_sender           (GMimeMessage *message,
                                                             const char *sender);

Set the sender's name and address on the MIME Message. (ex: "\"Joe Sixpack\" <joe`sixpack.org`>")

`message` : | MIME Message to change
`sender` : | The name and address of the sender

### g_mime_message_get_sender ()

    const char*         g_mime_message_get_sender           (GMimeMessage *message);

Gets the email address of the sender from `message`.

`message` : | MIME Message
Returns : | the sender's name and address of the MIME Message.

### g_mime_message_set_reply_to ()

    void                g_mime_message_set_reply_to         (GMimeMessage *message,
                                                             const char *reply_to);

Set the sender's Reply-To address on the MIME Message.

`message` : | MIME Message to change
`reply_to` : | The Reply-To address

### g_mime_message_get_reply_to ()

    const char*         g_mime_message_get_reply_to         (GMimeMessage *message);

Gets the Reply-To address from `message`.

`message` : | MIME Message
Returns : | the sender's Reply-To address from the MIME Message.

### g_mime_message_add_recipient ()

    void                g_mime_message_add_recipient        (GMimeMessage *message,
                                                             const char *type,
                                                             const char *name,
                                                             const char *address);

Add a recipient of a chosen type to the MIME Message. Available recipient types include: GMIME_RECIPIENT_TYPE_TO, GMIME_RECIPIENT_TYPE_CC and GMIME_RECIPIENT_TYPE_BCC.

`message` : | MIME Message to change
`type` : | Recipient type
`name` : | The recipient's name
`address` : | The recipient's address

### g_mime_message_add_recipients_from_string ()

    void                g_mime_message_add_recipients_from_string
                                                            (GMimeMessage *message,
                                                             const char *type,
                                                             const char *string);

Add a list of recipients of a chosen type to the MIME Message. Available recipient types include: GMIME_RECIPIENT_TYPE_TO, GMIME_RECIPIENT_TYPE_CC and GMIME_RECIPIENT_TYPE_BCC. The string must be in the format specified in rfc822.

`message` : | MIME Message
`type` : | Recipient type
`string` : | A string of recipient names and addresses.

### g_mime_message_get_recipients ()

    const InternetAddressList* g_mime_message_get_recipients
                                                            (GMimeMessage *message,
                                                             const char *type);

Gets a list of recipients of type `type` from `message`. Available recipient types include: GMIME_RECIPIENT_TYPE_TO, GMIME_RECIPIENT_TYPE_CC and GMIME_RECIPIENT_TYPE_BCC.

`message` : | MIME Message
`type` : | Recipient type
Returns : | a list of recipients of a chosen type from the MIME Message.

### g_mime_message_get_all_recipients ()

    InternetAddressList* g_mime_message_get_all_recipients  (GMimeMessage *message);

Gets the complete list of recipients for `message`.

`message` : | MIME Message
Returns : | a newly allocated InternetAddressList containing all recipients of the message.

### g_mime_message_set_subject ()

    void                g_mime_message_set_subject          (GMimeMessage *message,
                                                             const char *subject);

Set the unencoded UTF-8 Subject field on a MIME Message.

`message` : | MIME Message
`subject` : | Subject string

### g_mime_message_get_subject ()

    const char*         g_mime_message_get_subject          (GMimeMessage *message);

Gets the message's subject.

`message` : | MIME Message
Returns : | the unencoded UTF-8 Subject field on a MIME Message.

### g_mime_message_set_date ()

    void                g_mime_message_set_date             (GMimeMessage *message,
                                                             time_t date,
                                                             int gmt_offset);

Sets the sent-date on a MIME Message.

`message` : | MIME Message
`date` : | Sent-date (ex: gotten from time (NULL))
`gmt_offset` : | GMT date offset (in +/- hours)

### g_mime_message_get_date ()

    void                g_mime_message_get_date             (GMimeMessage *message,
                                                             time_t *date,
                                                             int *gmt_offset);

Stores the date in time_t format in date and the GMT offset in `gmt_offset`.

`message` : | MIME Message
`date` : | Sent-date
`gmt_offset` : | GMT date offset (in +/- hours)

### g_mime_message_get_date_string ()

    char*               g_mime_message_get_date_string      (GMimeMessage *message);

Gets the message's sent date in string format.

`message` : | MIME Message
Returns : | the sent-date of the MIME Message in string format.

### g_mime_message_set_message_id ()

    void                g_mime_message_set_message_id       (GMimeMessage *message,
                                                             const char *message_id);

Set the Message-Id on a message.

`message` : | MIME Message
`message_id` : | message-id (addr-spec portion)

### g_mime_message_get_message_id ()

    const char*         g_mime_message_get_message_id       (GMimeMessage *message);

Gets the Message-Id header of `message`.

`message` : | MIME Message
Returns : | the Message-Id of a message.

### g_mime_message_add_header ()

    void                g_mime_message_add_header           (GMimeMessage *message,
                                                             const char *header,
                                                             const char *value);

Add an arbitrary message header to the MIME Message such as X-Mailer, X-Priority, or In-Reply-To.

`message` : | MIME Message
`header` : | rfc822 header field
`value` : | the contents of the header field

### g_mime_message_set_header ()

    void                g_mime_message_set_header           (GMimeMessage *message,
                                                             const char *header,
                                                             const char *value);

Set an arbitrary message header to the MIME Message such as X-Mailer, X-Priority, or In-Reply-To.

`message` : | MIME Message
`header` : | rfc822 header field
`value` : | the contents of the header field

### g_mime_message_get_header ()

    const char*         g_mime_message_get_header           (GMimeMessage *message,
                                                             const char *header);

Gets the value of the requested header `header` if it exists, or `NULL` otherwise.

`message` : | MIME Message
`header` : | rfc822 header field
Returns : | the value of the requested header (or `NULL` if it isn't set)

### g_mime_message_set_mime_part ()

    void                g_mime_message_set_mime_part        (GMimeMessage *message,
                                                             GMimeObject *mime_part);

Set the root-level MIME part of the message.

`message` : | MIME Message
`mime_part` : | The root-level MIME Part

### g_mime_message_get_mime_part ()

    GMimeObject*        g_mime_message_get_mime_part        (GMimeMessage *message);

Gets the toplevel MIME part contained within `message`.

`message` : | MIME Message
Returns : | the toplevel MIME part of `message`.

### g_mime_message_write_to_stream ()

    ssize_t             g_mime_message_write_to_stream      (GMimeMessage *message,
                                                             GMimeStream *stream);

### Warning

`g_mime_message_write_to_stream` is deprecated and should not be used in newly-written code.

Write the contents of the MIME Message to `stream`.

WARNING: This interface is deprecated. Use `g_mime_object_write_to_stream()` instead.

`message` : | MIME Message
`stream` : | output stream
Returns : | `-1` on fail.

### g_mime_message_to_string ()

    char*               g_mime_message_to_string            (GMimeMessage *message);

### Warning

`g_mime_message_to_string` is deprecated and should not be used in newly-written code.

Allocates a string buffer containing the mime message `message`.

WARNING: This interface is deprecated. Use `g_mime_object_to_string()` instead.

`message` : | MIME Message
Returns : | an allocated string containing the MIME Message.

### g_mime_message_get_body ()

    char*               g_mime_message_get_body             (const GMimeMessage *message,
                                                             gboolean want_plain,
                                                             gboolean *is_html);

### Warning

`g_mime_message_get_body` is deprecated and should not be used in newly-written code.

Attempts to get the body of the message in the preferred format specified by `want_plain`.

WARNING: This interface is deprecated.

`message` : | MIME Message
`want_plain` : | request text/plain
`is_html` : | body returned is in html format
Returns : | the prefered form of the message body. Sets the value of `is_html` to `TRUE` if the part returned is in HTML format, otherwise `FALSE`. Note: This function is NOT guarenteed to always work as it makes some assumptions that are not necessarily true. It is recommended that you traverse the MIME structure yourself.

### g_mime_message_get_headers ()

    char*               g_mime_message_get_headers          (GMimeMessage *message);

Allocates a string buffer containing the raw message headers.

`message` : | MIME Message
Returns : | an allocated string containing the raw message headers.

### g_mime_message_foreach_part ()

    void                g_mime_message_foreach_part         (GMimeMessage *message,
                                                             GMimePartFunc callback,
                                                             gpointer data);

Calls `callback` on each of the mime parts in the mime message.

`message` : | MIME message
`callback` : | function to call on each of the mime parts contained by the mime message
`data` : | extra data to pass to the callback