GMimeMessage

## GMimeMessage GMimeMessage — Messages |

## Functions

GMimeMessage * | g_mime_message_new ()
void | g_mime_message_set_sender ()
const char * | g_mime_message_get_sender ()
void | g_mime_message_set_reply_to ()
const char * | g_mime_message_get_reply_to ()
void | g_mime_message_add_recipient ()
InternetAddressList * | g_mime_message_get_recipients ()
InternetAddressList * | g_mime_message_get_all_recipients ()
void | g_mime_message_set_subject ()
const char * | g_mime_message_get_subject ()
void | g_mime_message_set_date ()
void | g_mime_message_get_date ()
void | g_mime_message_set_date_as_string ()
char * | g_mime_message_get_date_as_string ()
void | g_mime_message_set_message_id ()
const char * | g_mime_message_get_message_id ()
void | g_mime_message_set_mime_part ()
GMimeObject * | g_mime_message_get_mime_part ()
void | g_mime_message_foreach ()
GMimeObject * | g_mime_message_get_body ()

## Types and Values

enum | GMimeRecipientType
struct | GMimeMessage

## Description

A GMimeMessage represents an rfc822 message.

## Functions

### 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`).

#### Parameters

pretty_headers | make pretty headers |

#### Returns

an empty GMimeMessage 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` >")

Note: The `sender` string should be the raw encoded email address. It is probably best to use an InternetAddress to construct and encode this value.

#### Parameters

message | A GMimeMessage |
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` .

#### Parameters

message | A GMimeMessage |

#### Returns

the sender's name and address of the `message` in a form suitable for display or `NULL` if no sender is set. If not `NULL`, the returned string will be in UTF-8.

### 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 `message` .

Note: The `reply_to` string should be the raw encoded email address. It is probably best to use an InternetAddress to construct and encode this value.

#### Parameters

message | A GMimeMessage |
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` .

#### Parameters

message | A GMimeMessage |

#### Returns

the sender's Reply-To address in a form suitable for display or `NULL` if no Reply-To address is set. If not `NULL`, the returned string will be in UTF-8.

### g_mime_message_add_recipient ()

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

Add a recipient of a chosen type to the MIME message.

Note: The `name` (and `addr` ) strings should be in UTF-8.

#### Parameters

message | A GMimeMessage |
type | A GMimeRecipientType |
name | The recipient's name (or `NULL`) |
addr | The recipient's address |

### g_mime_message_get_recipients ()

    InternetAddressList *
    g_mime_message_get_recipients (GMimeMessage *message,
                                   GMimeRecipientType type);

Gets a list of recipients of the specified `type` from the `message` .

#### Parameters

message | A GMimeMessage |
type | A GMimeRecipientType |

#### Returns

a list of recipients of the specified `type` from the `message` .

[transfer none]

### g_mime_message_get_all_recipients ()

    InternetAddressList *
    g_mime_message_get_all_recipients (GMimeMessage *message);

Gets the complete list of recipients for `message` .

#### Parameters

message | A GMimeMessage |

#### Returns

a newly allocated InternetAddressList containing all recipients of the message or `NULL` if no recipients are set.

[transfer full]

### g_mime_message_set_subject ()

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

Set the subject of a `message` .

Note: The `subject` string should be in UTF-8.

#### Parameters

message | A GMimeMessage |
subject | Subject string |

### g_mime_message_get_subject ()

    const char *
    g_mime_message_get_subject (GMimeMessage *message);

Gets the subject of the `message` .

#### Parameters

message | A GMimeMessage |

#### Returns

the subject of the `message` in a form suitable for display or `NULL` if no subject is set. If not `NULL`, the returned string will be in UTF-8.

### g_mime_message_set_date ()

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

Sets the Date header on a MIME Message.

#### Parameters

message | A GMimeMessage |
date | a date to be used in the Date header |
tz_offset | timezone offset (in +/- hours) |

### g_mime_message_get_date ()

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

Stores the date in time_t format in `date` . If `tz_offset` is non-`NULL`, then the timezone offset in will be stored in `tz_offset` .

#### Parameters

message | A GMimeMessage |
date | pointer to a date in time_t. | [out]
tz_offset | pointer to timezone offset (in +/- hours). | [out]

### g_mime_message_set_date_as_string ()

    void
    g_mime_message_set_date_as_string (GMimeMessage *message,
                                       const char *str);

Sets the sent-date of the message.

#### Parameters

message | A GMimeMessage |
str | a date string |

### g_mime_message_get_date_as_string ()

    char *
    g_mime_message_get_date_as_string (GMimeMessage *message);

Gets the message's sent-date in string format.

#### Parameters

message | A GMimeMessage |

#### Returns

a newly allocated string containing the Date header value.

### 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.

#### Parameters

message | A GMimeMessage |
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` .

#### Parameters

message | A GMimeMessage |

#### Returns

the Message-Id of a message.

### 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.

#### Parameters

message | A GMimeMessage |
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` .

#### Parameters

message | A GMimeMessage |

#### Returns

the toplevel MIME part of `message` .

[transfer none]

### g_mime_message_foreach ()

    void
    g_mime_message_foreach (GMimeMessage *message,
                            GMimeObjectForeachFunc callback,
                            gpointer user_data);

Recursively calls `callback` on each of the mime parts in the mime message.

#### Parameters

message | A GMimeMessage |
callback | function to call on each of the mime parts contained by the mime message. | [scope call]
user_data | user-supplied callback data |

### g_mime_message_get_body ()

    GMimeObject *
    g_mime_message_get_body (GMimeMessage *message);

Attempts to identify the MIME part containing the body of the message.

#### Parameters

message | A GMimeMessage |

#### Returns

a GMimeObject containing the textual content that appears to be the main body of the message.

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.

[transfer none]

## Types and Values

### enum GMimeRecipientType

A message recipient type.

#### Members

GMIME_RECIPIENT_TYPE_TO | Represents the recipients in the To: header. |
GMIME_RECIPIENT_TYPE_CC | Represents the recipients in the Cc: header. |
GMIME_RECIPIENT_TYPE_BCC | Represents the recipients in the Bcc: header. |

### struct GMimeMessage

    struct GMimeMessage {
    	GMimeObject parent_object;

    	InternetAddressList **recipients;
    	GMimeObject *mime_part;
    	char *message_id;
    	char *reply_to;
    	char *subject;
    	char *from;

    	time_t date;
    	int tz_offset;
    };

A MIME Message object.

#### Members

GMimeObject `parent_object`; | parent GMimeObject |
InternetAddressList **`recipients`; | hash table of recipients using recipient header name as the hash key |
GMimeObject *`mime_part`; | toplevel MIME part |
char *`message_id`; | Message-Id string |
char *`reply_to`; | Reply-To string |
char *`subject`; | Subject string |
char *`from`; | From string |
time_t `date`; | Date value |
int `tz_offset`; | timezone offset |