diff --git a/src/mu-msg-file.c b/src/mu-msg-file.c index 0d9ed106..1fc504d9 100644 --- a/src/mu-msg-file.c +++ b/src/mu-msg-file.c @@ -828,3 +828,14 @@ mu_msg_file_get_num_field (MuMsgFile *self, const MuMsgFieldId mfid) } } + + +const char* +mu_msg_file_get_header (MuMsgFile *self, const char *header) +{ + g_return_val_if_fail (self, NULL); + g_return_val_if_fail (header, NULL); + + return g_mime_object_get_header + (GMIME_OBJECT(self->_mime_msg), header); +} diff --git a/src/mu-msg-file.h b/src/mu-msg-file.h index 2935ddfc..529e52a6 100644 --- a/src/mu-msg-file.h +++ b/src/mu-msg-file.h @@ -47,6 +47,19 @@ void mu_msg_file_destroy (MuMsgFile *self); +/** + * get a specific header + * + * @param self a MuMsgFile instance + * @param header a header (e.g. 'X-Mailer' or 'List-Id') + * + * @return the value of the header or NULL if not found. Note, only + * valid as long as this MuMsgFile is valid -- before + * mu_msg_file_destroy + */ +const char* mu_msg_file_get_header (MuMsgFile *self, const char *header); + + /** * get a string value for this message * diff --git a/src/mu-msg.c b/src/mu-msg.c index 3f811289..36320cf2 100644 --- a/src/mu-msg.c +++ b/src/mu-msg.c @@ -249,6 +249,23 @@ get_num_field (MuMsg *self, MuMsgFieldId mfid) } +const char* +mu_msg_get_header (MuMsg *self, const char *header) +{ + g_return_val_if_fail (self, NULL); + g_return_val_if_fail (header, NULL); + + /* if we don't have a file object yet, we need to + * create it from the file on disk */ + if (!self->_file) + self->_file = get_msg_file (self); + if (!self->_file && !(self->_file = get_msg_file (self))) + return NULL; + + return mu_msg_file_get_header (self->_file, header); +} + + const char* mu_msg_get_path (MuMsg *self) { diff --git a/src/mu-msg.h b/src/mu-msg.h index 1bbc2c2d..eb9ce35a 100644 --- a/src/mu-msg.h +++ b/src/mu-msg.h @@ -298,6 +298,19 @@ time_t mu_msg_get_timestamp (MuMsg *msg); +/** + * get a specific header from the message. This value will _not_ be + * cached + * + * @param self a MuMsg instance + * @param header a specific header (like 'X-Mailer' or 'Organization') + * + * @return a header string which is valid as long as this MuMsg is + */ +const char* mu_msg_get_header (MuMsg *self, const char *header); + + + /** * get the list of references as a comma-separated string *