## e-mail-utils

e-mail-utils

## Functions

void | (*EMailUtilsSortSourcesFunc) ()
gboolean | em_utils_folder_is_drafts ()
gboolean | em_utils_folder_name_is_drafts ()
gboolean | em_utils_folder_is_templates ()
gboolean | em_utils_folder_is_sent ()
gboolean | em_utils_folder_is_outbox ()
ESource * | em_utils_guess_mail_account ()
ESource * | em_utils_guess_mail_identity ()
ESource * | em_utils_guess_mail_account_with_recipients ()
ESource * | em_utils_guess_mail_identity_with_recipients ()
ESource * | em_utils_guess_mail_account_with_recipients_and_sort ()
ESource * | em_utils_guess_mail_identity_with_recipients_and_sort ()
ESource * | em_utils_ref_mail_identity_for_store ()
gboolean | em_utils_is_local_delivery_mbox_file ()
void | em_utils_expand_groups ()
void | em_utils_get_real_folder_and_message_uid ()
gboolean | em_utils_address_is_user ()
gboolean | em_utils_sender_is_user ()
CamelHeaderParam * | em_utils_decode_autocrypt_header_value ()
gboolean | em_utils_decode_autocrypt_header ()

## Description

## Functions

### EMailUtilsSortSourcesFunc ()

    void
    (*EMailUtilsSortSourcesFunc) (GList **psources,
                                  gpointer user_data);

### em_utils_folder_is_drafts ()

    gboolean
    em_utils_folder_is_drafts (ESourceRegistry *registry,
                               CamelFolder *folder);

Decides if `folder` is a Drafts folder.

Returns `TRUE` if this is a Drafts folder or `FALSE` otherwise.

#### Parameters

registry | an ESourceRegistry |
folder | a CamelFolder |

### em_utils_folder_name_is_drafts ()

    gboolean
    em_utils_folder_name_is_drafts (ESourceRegistry *registry,
                                    CamelStore *store,
                                    const gchar *folder_name);

Decides if `folder_name` of the `store` is a Drafts folder.

Returns `TRUE` if this is a Drafts folder or `FALSE` otherwise.

#### Parameters

registry | an ESourceRegistry |
store | a CamelStore |
folder_name | a folder name |

Since: 3.24

### em_utils_folder_is_templates ()

    gboolean
    em_utils_folder_is_templates (ESourceRegistry *registry,
                                  CamelFolder *folder);

Decides if `folder` is a Templates folder.

Returns `TRUE` if this is a Templates folder or `FALSE` otherwise.

#### Parameters

registry | an ESourceRegistry |
folder | a CamelFolder |

### em_utils_folder_is_sent ()

    gboolean
    em_utils_folder_is_sent (ESourceRegistry *registry,
                             CamelFolder *folder);

Decides if `folder` is a Sent folder.

Returns `TRUE` if this is a Sent folder or `FALSE` otherwise.

#### Parameters

registry | an ESourceRegistry |
folder | a CamelFolder |

### em_utils_folder_is_outbox ()

    gboolean
    em_utils_folder_is_outbox (ESourceRegistry *registry,
                               CamelFolder *folder);

Decides if `folder` is an Outbox folder.

Returns `TRUE` if this is an Outbox folder or `FALSE` otherwise.

#### Parameters

registry | an ESourceRegistry |
folder | a CamelFolder |

### em_utils_guess_mail_account ()

    ESource *
    em_utils_guess_mail_account (ESourceRegistry *registry,
                                 CamelMimeMessage *message,
                                 CamelFolder *folder,
                                 const gchar *message_uid);

### em_utils_guess_mail_identity ()

    ESource *
    em_utils_guess_mail_identity (ESourceRegistry *registry,
                                  CamelMimeMessage *message,
                                  CamelFolder *folder,
                                  const gchar *message_uid);

### em_utils_guess_mail_account_with_recipients ()

    ESource *
    em_utils_guess_mail_account_with_recipients
                                   (ESourceRegistry *registry,
                                    CamelMimeMessage *message,
                                    CamelFolder *folder,
                                    const gchar *message_uid);

### em_utils_guess_mail_identity_with_recipients ()

    ESource *
    em_utils_guess_mail_identity_with_recipients
                                   (ESourceRegistry *registry,
                                    CamelMimeMessage *message,
                                    CamelFolder *folder,
                                    const gchar *message_uid,
                                    gchar **identity_name,
                                    gchar **identity_address);

### em_utils_guess_mail_account_with_recipients_and_sort ()

    ESource *
    em_utils_guess_mail_account_with_recipients_and_sort
                                   (ESourceRegistry *registry,
                                    CamelMimeMessage *message,
                                    CamelFolder *folder,
                                    const gchar *message_uid,
                                    EMailUtilsSortSourcesFunc sort_func,
                                    gpointer sort_func_data);

### em_utils_guess_mail_identity_with_recipients_and_sort ()

    ESource *
    em_utils_guess_mail_identity_with_recipients_and_sort
                                   (ESourceRegistry *registry,
                                    CamelMimeMessage *message,
                                    CamelFolder *folder,
                                    const gchar *message_uid,
                                    gchar **identity_name,
                                    gchar **identity_address,
                                    EMailUtilsSortSourcesFunc sort_func,
                                    gpointer sort_func_data);

### em_utils_ref_mail_identity_for_store ()

    ESource *
    em_utils_ref_mail_identity_for_store (ESourceRegistry *registry,
                                          CamelStore *store);

### em_utils_is_local_delivery_mbox_file ()

    gboolean
    em_utils_is_local_delivery_mbox_file (CamelService *service);

Returns whether `service` refers to a local mbox file where new mail is delivered by some external software.

Specifically that means `service` 's CamelProvider protocol is "mbox" and its “path” setting points to an existing file, not a directory.

#### Parameters

service | a CamelService |

#### Returns

whether `service` is for local mbox delivery

### em_utils_expand_groups ()

    void
    em_utils_expand_groups (CamelInternetAddress *addresses);

### em_utils_get_real_folder_and_message_uid ()

    void
    em_utils_get_real_folder_and_message_uid
                                   (CamelFolder *folder,
                                    const gchar *uid,
                                    CamelFolder **out_real_folder,
                                    gchar **folder_uri,
                                    gchar **message_uid);

### em_utils_address_is_user ()

    gboolean
    em_utils_address_is_user (ESourceRegistry *registry,
                              const gchar *address,
                              gboolean only_enabled_accounts);

### em_utils_sender_is_user ()

    gboolean
    em_utils_sender_is_user (ESourceRegistry *registry,
                             CamelMimeMessage *message,
                             gboolean only_enabled_accounts);

### em_utils_decode_autocrypt_header_value ()

    CamelHeaderParam *
    em_utils_decode_autocrypt_header_value
                                   (const gchar *value);

Parses the raw 'Autocrypt' header value into CamelHeaderParam. Free the returned data with the `camel_header_param_list_free()`, when no longer needed.

#### Parameters

value | the raw 'Autocrypt' header value |

#### Returns

parsed 'Autocrypt' header value.

[transfer full][nullable]

Since: 3.56

### em_utils_decode_autocrypt_header ()

    gboolean
    em_utils_decode_autocrypt_header (CamelMimeMessage *message,
                                      guint index,
                                      gboolean *out_prefer_encrypt,
                                      guint8 **out_keydata,
                                      gsize *out_keydata_size);

Decodes an Autocrypt header stored in the `message` with index `index` (as an n-th header), valid for the `message` sender.

Either both `out_keydata` and `out_keydata_size` can be provided or `NULL`, because both of the values are needed to know the key data details.

#### Parameters

message | a CamelMessage |
index | which Autocrypt header to decode, 0-based |
out_prefer_encrypt | optional return location for a flag whether the sender prefers encryption, or `NULL`. | [out][optional]
out_keydata | optional return location for provided key data, or `NULL`. | [out callee-allocates][transfer full]
out_keydata_size | optional return location for the size of the `out_keydata` , or `NULL`. | [out]

#### Returns

`TRUE` when there was found `index` -th valid Autocrypt header, `FALSE` otherwise

Since: 3.50