6 #ifndef __DC_MIMEPARSER_H__
7 #define __DC_MIMEPARSER_H__
17 typedef struct _dc_mimepart dc_mimepart_t;
18 typedef struct _dc_mimeparser dc_mimeparser_t;
44 struct mailmime* mimeroot;
47 struct mailimf_fields* header_root;
48 struct mailimf_fields* header_protected;
51 int is_send_by_messenger;
53 int decrypting_failed;
55 struct _dc_e2ee_helper* e2ee_helper;
65 int is_system_message;
67 struct _dc_kml* location_kml;
68 struct _dc_kml* message_kml;
72 dc_mimeparser_t* dc_mimeparser_new (
const char* blobdir,
dc_context_t*);
73 void dc_mimeparser_unref (dc_mimeparser_t*);
74 void dc_mimeparser_empty (dc_mimeparser_t*);
76 void dc_mimeparser_parse (dc_mimeparser_t*,
const char* body_not_terminated,
size_t body_bytes);
80 struct mailimf_field* dc_mimeparser_lookup_field (dc_mimeparser_t*,
const char* field_name);
81 struct mailimf_optional_field* dc_mimeparser_lookup_optional_field (dc_mimeparser_t*,
const char* field_name);
82 dc_mimepart_t* dc_mimeparser_get_last_nonmeta (dc_mimeparser_t*);
83 #define dc_mimeparser_has_nonmeta(a) (dc_mimeparser_get_last_nonmeta((a))!=NULL)
84 int dc_mimeparser_is_mailinglist_message (dc_mimeparser_t*);
85 int dc_mimeparser_sender_equals_recipient(dc_mimeparser_t*);
86 void dc_mimeparser_repl_msg_by_error (dc_mimeparser_t*,
const char* error_msg);
90 #ifdef DC_USE_MIME_DEBUG
91 void mailmime_print (
struct mailmime*);
93 struct mailmime_parameter* mailmime_find_ct_parameter (
struct mailmime*,
const char* name);
94 int mailmime_transfer_decode (
struct mailmime*,
const char** ret_decoded_data,
size_t* ret_decoded_data_bytes,
char** ret_to_mmap_string_unref);
95 struct mailimf_fields* mailmime_find_mailimf_fields (
struct mailmime*);
96 char* mailimf_find_first_addr (
const struct mailimf_mailbox_list*);
97 struct mailimf_field* mailimf_find_field (
struct mailimf_fields*,
int wanted_fld_type);
98 struct mailimf_optional_field* mailimf_find_optional_field (
struct mailimf_fields*,
const char* wanted_fld_name);
99 dc_hash_t* mailimf_get_recipients (
struct mailimf_fields*);