## ESourceMailComposition ESourceMailComposition — ESource extension for mail composition settings |

## Synopsis

    #include <libedataserver/libedataserver.h>

    #define             E_SOURCE_EXTENSION_MAIL_COMPOSITION
    struct              ESourceMailComposition;
    struct              ESourceMailCompositionClass;
    gchar **            e_source_mail_composition_dup_bcc   (ESourceMailComposition *extension);
    void                e_source_mail_composition_set_bcc   (ESourceMailComposition *extension,
                                                             const gchar * const *bcc);
    gchar **            e_source_mail_composition_dup_cc    (ESourceMailComposition *extension);
    void                e_source_mail_composition_set_cc    (ESourceMailComposition *extension,
                                                             const gchar * const *cc);
    const gchar *       e_source_mail_composition_get_drafts_folder
                                                            (ESourceMailComposition *extension);
    gchar *             e_source_mail_composition_dup_drafts_folder
                                                            (ESourceMailComposition *extension);
    void                e_source_mail_composition_set_drafts_folder
                                                            (ESourceMailComposition *extension,
                                                             const gchar *drafts_folder);
    gboolean            e_source_mail_composition_get_sign_imip
                                                            (ESourceMailComposition *extension);
    void                e_source_mail_composition_set_sign_imip
                                                            (ESourceMailComposition *extension,
                                                             gboolean sign_imip);
    const gchar *       e_source_mail_composition_get_templates_folder
                                                            (ESourceMailComposition *extension);
    gchar *             e_source_mail_composition_dup_templates_folder
                                                            (ESourceMailComposition *extension);
    void                e_source_mail_composition_set_templates_folder
                                                            (ESourceMailComposition *extension,
                                                             const gchar *templates_folder);

## Description

The ESourceMailComposition extension tracks settings to be applied when composing a new mail message.

Access the extension as follows:

    1
    2
    3
    4
    5
    #include <libedataserver/libedataserver.h>

    ESourceMailComposition *extension;

    extension = e_source_get_extension (source, E_SOURCE_EXTENSION_MAIL_COMPOSITION);

## Details

### E_SOURCE_EXTENSION_MAIL_COMPOSITION

    #define E_SOURCE_EXTENSION_MAIL_COMPOSITION "Mail Composition"

Pass this extension name to `e_source_get_extension()` to access ESourceMailComposition. This is also used as a group name in key files.

Since 3.6

### struct ESourceMailComposition

    struct ESourceMailComposition {
    	ESourceExtension parent;
    	ESourceMailCompositionPrivate *priv;
    };

Contains only private data that should be read and manipulated using the functions below.

Since 3.6

### struct ESourceMailCompositionClass

    struct ESourceMailCompositionClass {
    	ESourceExtensionClass parent_class;
    };

### e_source_mail_composition_dup_bcc ()

    gchar **            e_source_mail_composition_dup_bcc   (ESourceMailComposition *extension);

Thread-safe variation of `e_source_mail_composition_get_bcc()`. Use this function when accessing `extension` from multiple threads.

The returned string array should be freed with `g_strfreev()` when no longer needed.

`extension` : | an ESourceMailComposition
Returns : | a newly-allocated copy of "bcc". [transfer full]

Since 3.6

### e_source_mail_composition_set_bcc ()

    void                e_source_mail_composition_set_bcc   (ESourceMailComposition *extension,
                                                             const gchar * const *bcc);

Sets the recipients which should automatically be added to the blind carbon-copy (Bcc) list when composing a new mail message. The recipient strings should be of the form "Full Name <email-address>".

`extension` : | an ESource
`bcc` : | a `NULL`-terminated string array of Bcc recipients. [allow-none]

Since 3.6

### e_source_mail_composition_dup_cc ()

    gchar **            e_source_mail_composition_dup_cc    (ESourceMailComposition *extension);

Thread-safe variation of `e_source_mail_composition_get_cc()`. Use this function when accessing `extension` from multiple threads.

The returned string array should be freed with `g_strfreev()` when no longer needed.

`extension` : | an ESourceMailComposition
Returns : | a newly-allocated copy of "cc". [transfer full]

Since 3.6

### e_source_mail_composition_set_cc ()

    void                e_source_mail_composition_set_cc    (ESourceMailComposition *extension,
                                                             const gchar * const *cc);

Sets the recipients which should automatically be added to the carbon copy (Cc) list when composing a new mail message. The recipient strings should be of the form "Full Name <email-address>".

`extension` : | an ESourceMailComposition
`cc` : | a `NULL`-terminated string array of Cc recipients. [allow-none]

Since 3.6

### e_source_mail_composition_get_drafts_folder ()

    const gchar *       e_source_mail_composition_get_drafts_folder
                                                            (ESourceMailComposition *extension);

Returns a string identifying the preferred folder for draft messages. The format of the identifier string is defined by the client application.

`extension` : | an ESourceMailComposition
Returns : | an identifier for the preferred drafts folder

Since 3.6

### e_source_mail_composition_dup_drafts_folder ()

    gchar *             e_source_mail_composition_dup_drafts_folder
                                                            (ESourceMailComposition *extension);

Thread-safe variation of `e_source_mail_composition_get_drafts_folder()`. Use this function when accessing `extension` from multiple threads.

The returned string should be freed with `g_free()` when no longer needed.

`extension` : | an ESourceMailComposition
Returns : | a newly-allocated copy of "drafts-folder"

Since 3.6

### e_source_mail_composition_set_drafts_folder ()

    void                e_source_mail_composition_set_drafts_folder
                                                            (ESourceMailComposition *extension,
                                                             const gchar *drafts_folder);

Sets the preferred folder for draft messages by an identifier string. The format of the identifier string is defined by the client application.

The internal copy of `drafts_folder` is automatically stripped of leading and trailing whitespace. If the resulting string is empty, `NULL` is set instead.

`extension` : | an ESourceMailComposition
`drafts_folder` : | an identifier for the preferred drafts folder, or `NULL`. [allow-none]

Since 3.6

### e_source_mail_composition_get_sign_imip ()

    gboolean            e_source_mail_composition_get_sign_imip
                                                            (ESourceMailComposition *extension);

Returns whether outgoing iMIP messages such as meeting requests should also be signed. This is primarily intended as a workaround for certain versions of Microsoft Outlook which can't handle signed iMIP messages.

`extension` : | an ESourceMailComposition
Returns : | whether outgoing iMIP messages should be signed

Since 3.6

### e_source_mail_composition_set_sign_imip ()

    void                e_source_mail_composition_set_sign_imip
                                                            (ESourceMailComposition *extension,
                                                             gboolean sign_imip);

Sets whether outgoing iMIP messages such as meeting requests should also be signed. This is primarily intended as a workaround for certain versions of Microsoft Outlook which can't handle signed iMIP messages.

`extension` : | an ESourceMailComposition
`sign_imip` : | whether outgoing iMIP messages should be signed

Since 3.6

### e_source_mail_composition_get_templates_folder ()

    const gchar *       e_source_mail_composition_get_templates_folder
                                                            (ESourceMailComposition *extension);

Returns a string identifying the preferred folder for message templates. The format of the identifier string is defined by the client application.

`extension` : | an ESourceMailComposition
Returns : | an identifier for the preferred templates folder

Since 3.6

### e_source_mail_composition_dup_templates_folder ()

    gchar *             e_source_mail_composition_dup_templates_folder
                                                            (ESourceMailComposition *extension);

Thread-safe variation of `e_source_mail_composition_get_templates_folder()`. Use this function when accessing `extension` from multiple threads.

The returned string should be freed with `g_free()` when no longer needed.

`extension` : | an ESourceMailComposition
Returns : | a newly-allocated copy of "templates-folder"

Since 3.6

### e_source_mail_composition_set_templates_folder ()

    void                e_source_mail_composition_set_templates_folder
                                                            (ESourceMailComposition *extension,
                                                             const gchar *templates_folder);

Sets the preferred folder for message templates by an identifier string. The format of the identifier string is defined by the client application.

The internal copy of `templates_folder` is automatically stripped of leading and trailing whitespace. If the resulting string is empty, `NULL` is set instead.

`extension` : | an ESourceMailComposition
`templates_folder` : | an identifier for the preferred templates folder, or `NULL`. [allow-none]

Since 3.6