38 #ifndef _CMIME_MESSAGE_H
39 #define _CMIME_MESSAGE_H
52 #include <sys/types.h>
56 #include <sys/param.h>
70 typedef enum _BoundaryType {
94 typedef enum _CMimeMultipartType {
138 #define cmime_message_get_sender(message) (message->sender)
193 #define cmime_message_get_headers(message) (message->headers)
236 #define cmime_message_get_recipients(message) (message->recipients)
357 #define cmime_message_get_boundary(message) (message->boundary)
418 #define cmime_message_part_count(message) (message->parts->size)
512 #define cmime_message_part_first(message) ((CMimePart_T *)cmime_list_head(message->parts)->data)
518 #define cmime_message_part_last(message) ((CMimePart_T *)cmime_list_tail(message->parts)->data)
void cmime_message_free(CMimeMessage_T *message)
Free a CMimeMessage_T object.
Definition: cmime_message.c:431
void cmime_message_set_mime_version(CMimeMessage_T *message, const char *s)
Set Mime-Version header value. According to RFC 2045, Mime-Version header is required at the top leve...
Definition: cmime_message.c:622
CMimeList_T * recipients
Definition: cmime_message.h:81
int cmime_message_part_remove(CMimeMessage_T *message, CMimePart_T *part)
Remove a mime part from message.
Definition: cmime_message.c:1130
int cmime_message_set_header(CMimeMessage_T *message, const char *header)
Set a header to message object. If header already exists, it will be overwritten. ...
Definition: cmime_message.c:505
int cmime_message_add_recipient(CMimeMessage_T *message, const char *recipient, CMimeAddressType_T t)
Add recipient to message.
Definition: cmime_message.c:539
char * gap
Definition: cmime_message.h:84
char * cmime_message_get_content_type(CMimeMessage_T *message)
Get Content-Type header value.
Definition: cmime_message.c:610
Definition: cmime_message.h:99
Defines functions and structs for mime part handling.
CMimeList_T * parts
Definition: cmime_message.h:85
Definition: cmime_message.h:96
CMimeStringList_T * boundaries
Definition: cmime_message.h:87
char * cmime_message_get_subject(CMimeMessage_T *message)
Get the subject string from CMimeMessage_T object.
Definition: cmime_message.c:959
void cmime_message_set_content_type(CMimeMessage_T *message, const char *s)
Set Content-Type header.
Definition: cmime_message.c:606
char * linebreak
Definition: cmime_message.h:86
void cmime_message_set_date(CMimeMessage_T *message, const char *s)
Set date string header.
Definition: cmime_message.c:647
int cmime_message_append_part(CMimeMessage_T *message, CMimePart_T *part)
Append mime part to message object and generate boundary if necessary.
Definition: cmime_message.c:1060
char * cmime_message_get_content_id(CMimeMessage_T *message)
Get Content-ID header value.
Definition: cmime_message.c:635
Represents an email address.
Definition: cmime_address.h:57
char * cmime_message_get_content_description(CMimeMessage_T *message)
Get Content-Description header value.
Definition: cmime_message.c:643
int cmime_message_add_child_part(CMimeMessage_T *message, CMimePart_T *part, CMimePart_T *child, CMimeMultipartType_T subtype)
Add a child part to given mimepart, set content type and generate a boundary if necessary.
Definition: cmime_message.c:1159
void cmime_message_append_subject(CMimeMessage_T *message, const char *s)
append string to subject
Definition: cmime_message.c:974
Definition: cmime_message.h:98
void cmime_message_add_generated_message_id(CMimeMessage_T *message)
Add a newly generated message id to a CMimeMessage_T object.
Definition: cmime_message.c:1012
int cmime_message_to_file(CMimeMessage_T *message, const char *filename)
Write CMimeMessage_T object to file.
Definition: cmime_message.c:792
char * cmime_message_get_content_transfer_encoding(CMimeMessage_T *message)
Get Content-Transfer-Encoding value.
Definition: cmime_message.c:618
CMimeAddressType_T
Possible types of email addresses.
Definition: cmime_address.h:46
void cmime_message_add_generated_boundary(CMimeMessage_T *message)
Add a newly generated boundary to a CMimeMessage_T object.
Definition: cmime_message.c:714
Definition: cmime_message.h:72
int cmime_message_add_recipient_to(CMimeMessage_T *message, const char *recipient)
Add To recipient to message.
Definition: cmime_message.c:576
A mime part.
Definition: cmime_part.h:52
CMimeMessage_T * cmime_message_new(void)
Creates a new CMimeMessage_T object.
Definition: cmime_message.c:400
char * cmime_message_get_mime_version(CMimeMessage_T *message)
Get Mime-Version header value.
Definition: cmime_message.c:627
int cmime_message_set_date_now(CMimeMessage_T *message)
Get current time and set date header.
Definition: cmime_message.c:655
void cmime_message_set_content_transfer_encoding(CMimeMessage_T *message, const char *s)
set Content-Transfer-Encoding value
Definition: cmime_message.c:614
CMimeAddress_T * sender
Definition: cmime_message.h:80
void cmime_message_set_boundary(CMimeMessage_T *message, const char *boundary)
Set message boundary.
Definition: cmime_message.c:671
void cmime_message_set_content_description(CMimeMessage_T *message, const char *s)
Set Content-Description value.
Definition: cmime_message.c:639
CMimeMultipartType_T
Possible multipart mime subtypes.
Definition: cmime_message.h:94
int cmime_message_add_recipient_bcc(CMimeMessage_T *message, const char *recipient)
Add Bcc recipient to message.
Definition: cmime_message.c:596
char * cmime_message_generate_message_id(void)
Generate a message id.
Definition: cmime_message.c:985
Definition: cmime_message.h:95
CMimeHeader_T * cmime_message_get_header(CMimeMessage_T *message, const char *header)
Get header for given key.
Definition: cmime_message.c:520
Represents an email message.
Definition: cmime_message.h:79
void cmime_message_set_content_id(CMimeMessage_T *message, const char *s)
Set Content-ID header value.
Definition: cmime_message.c:631
char * cmime_message_get_sender_string(CMimeMessage_T *message)
Get sender of a CMimeMessage_T object as string.
Definition: cmime_message.c:473
void cmime_message_add_attachment(CMimeMessage_T *message, char *attachment)
add attachment to message
Definition: cmime_message.c:1083
Definition: cmime_message.h:97
CMimeMessage_T * cmime_message_create_skeleton(const char *sender, const char *recipient, const char *subject)
create message skeleton with basic header information
Definition: cmime_message.c:1107
CMimeBoundaryType_T
Possible types of boundaries.
Definition: cmime_message.h:70
char * boundary
Definition: cmime_message.h:83
void cmime_message_set_sender(CMimeMessage_T *message, const char *sender)
Add sender to CMimeMessage_T object. If sender already exists, it will be overwritten.
Definition: cmime_message.c:455
void cmime_message_prepend_subject(CMimeMessage_T *message, const char *s)
prepend string to subject
Definition: cmime_message.c:963
Double linked list implementation.
Definition: cmime_list.h:55
Defines functions and structs for double linked list.
char * cmime_message_get_date(CMimeMessage_T *message)
Get date string from CMimeMessage_T object.
Definition: cmime_message.c:651
CMimeList_T * headers
Definition: cmime_message.h:82
int cmime_message_from_file(CMimeMessage_T **message, const char *filename, int header_only)
Parse given file and create a CMimeMessage_T object.
Definition: cmime_message.c:724
Defines functions and structs for email address handling.
Defines helper functions and structs for string handling.
char * cmime_message_to_string(CMimeMessage_T *message)
Return a message object as string.
Definition: cmime_message.c:816
Definition: cmime_message.h:71
char * cmime_message_get_message_id(CMimeMessage_T *message)
Get MessageID of message object.
Definition: cmime_message.c:501
Defines utility functions.
void cmime_message_set_subject(CMimeMessage_T *message, const char *s)
Set message subject.
Definition: cmime_message.c:955
A simple list with strings.
Definition: cmime_string.h:46
char * cmime_message_generate_boundary(void)
Generate a message boundary.
Definition: cmime_message.c:695
void cmime_message_set_message_id(CMimeMessage_T *message, const char *mid)
Set message id to CMimeMessage_T object, if alreay exists, value will be overwritten.
Definition: cmime_message.c:482
int cmime_message_from_string(CMimeMessage_T **message, const char *content, int header_only)
Parse given string and create a new CMimeMessage_T object.
Definition: cmime_message.c:929
int cmime_message_set_body(CMimeMessage_T *message, const char *content)
Set plain body to non multipart message.
Definition: cmime_message.c:1021
int cmime_message_add_recipient_cc(CMimeMessage_T *message, const char *recipient)
Add Cc recipient to message.
Definition: cmime_message.c:586