## EMsgComposer EMsgComposer |

## Functions

EMsgComposer * | e_msg_composer_new ()
EMsgComposer * | e_msg_composer_new_with_message ()
EMsgComposer * | e_msg_composer_new_from_url ()
EMsgComposer * | e_msg_composer_new_redirect ()
EFocusTracker * | e_msg_composer_get_focus_tracker ()
CamelSession * | e_msg_composer_ref_session ()
EShell * | e_msg_composer_get_shell ()
void | e_msg_composer_send ()
void | e_msg_composer_save_to_drafts ()
void | e_msg_composer_save_to_outbox ()
void | e_msg_composer_print ()
void | e_msg_composer_set_body_text ()
void | e_msg_composer_set_body ()
void | e_msg_composer_add_header ()
void | e_msg_composer_set_header ()
void | e_msg_composer_remove_header ()
void | e_msg_composer_set_draft_headers ()
void | e_msg_composer_set_source_headers ()
void | e_msg_composer_attach ()
void | e_msg_composer_get_message ()
CamelMimeMessage * | e_msg_composer_get_message_finish ()
void | e_msg_composer_get_message_print ()
CamelMimeMessage * | e_msg_composer_get_message_print_finish ()
void | e_msg_composer_get_message_draft ()
CamelMimeMessage * | e_msg_composer_get_message_draft_finish ()
CamelInternetAddress * | e_msg_composer_get_from ()
CamelInternetAddress * | e_msg_composer_get_reply_to ()
void | e_msg_composer_add_message_attachments ()
void | e_msg_composer_request_close ()
gboolean | e_msg_composer_can_close ()
EComposerHeaderTable * | e_msg_composer_get_header_table ()
EAttachmentView * | e_msg_composer_get_attachment_view ()
GByteArray * | e_msg_composer_get_raw_message_text ()
gboolean | e_msg_composer_is_exiting ()
void | e_save_spell_languages ()

## Properties

gboolean | busy | Read
EFocusTracker * | focus-tracker | Read
EShell * | shell | Read / Write / Construct Only

## Signals

gboolean | presend | Run Last
void | print | Run Last
void | save-to-drafts | Run Last
void | save-to-outbox | Run Last
void | send | Run Last

## Types and Values

struct | EMsgComposer

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GtkWidget
                ╰── GtkContainer
                    ╰── GtkBin
                        ╰── GtkWindow
                            ╰── EMsgComposer

## Implemented Interfaces

EMsgComposer implements AtkImplementorIface, GtkBuildable and EExtensible.

## Description

## Functions

### e_msg_composer_new ()

    EMsgComposer *
    e_msg_composer_new (EShell *shell);

Create a new message composer widget.

#### Parameters

shell | an EShell |

#### Returns

A pointer to the newly created widget

### e_msg_composer_new_with_message ()

    EMsgComposer *
    e_msg_composer_new_with_message (EShell *shell,
                                     CamelMimeMessage *message,
                                     gboolean keep_signature,
                                     const gchar *override_identity_uid,
                                     GCancellable *cancellable);

Create a new message composer widget.

Note: Designed to work only for messages constructed using Evolution.

#### Parameters

shell | an EShell |
message | The message to use as the source |
keep_signature | Keep message signature, if any |
override_identity_uid | Optional identity UID to use, or `NULL`. | [allow none]
cancellable | optional GCancellable object, or `NULL` |

#### Returns

A pointer to the newly created widget

### e_msg_composer_new_from_url ()

    EMsgComposer *
    e_msg_composer_new_from_url (EShell *shell,
                                 const gchar *url);

Create a new message composer widget, and fill in fields as defined by the provided URL.

#### Parameters

shell | an EShell |
url | a mailto URL |

### e_msg_composer_new_redirect ()

    EMsgComposer *
    e_msg_composer_new_redirect (EShell *shell,
                                 CamelMimeMessage *message,
                                 const gchar *identity_uid,
                                 GCancellable *cancellable);

Create a new message composer widget.

#### Parameters

shell | an EShell |
message | The message to use as the source |

#### Returns

A pointer to the newly created widget

### e_msg_composer_get_focus_tracker ()

    EFocusTracker *
    e_msg_composer_get_focus_tracker (EMsgComposer *composer);

### e_msg_composer_ref_session ()

    CamelSession *
    e_msg_composer_ref_session (EMsgComposer *composer);

Returns the mail module's global CamelSession instance. Calling this function will load the mail module if it isn't already loaded.

The returned CamelSession is referenced for thread-safety and must be unreferenced with `g_object_unref()` when finished with it.

#### Parameters

composer | an EMsgComposer |

#### Returns

the mail module's CamelSession

### e_msg_composer_get_shell ()

    EShell *
    e_msg_composer_get_shell (EMsgComposer *composer);

Returns the EShell that was passed to `e_msg_composer_new()`.

#### Parameters

composer | an EMsgComposer |

#### Returns

the EShell

### e_msg_composer_send ()

    void
    e_msg_composer_send (EMsgComposer *composer);

Send the message in `composer` .

#### Parameters

composer | an EMsgComposer |

### e_msg_composer_save_to_drafts ()

    void
    e_msg_composer_save_to_drafts (EMsgComposer *composer);

Save the message in `composer` to the selected account's Drafts folder.

#### Parameters

composer | an EMsgComposer |

### e_msg_composer_save_to_outbox ()

    void
    e_msg_composer_save_to_outbox (EMsgComposer *composer);

Save the message in `composer` to the local Outbox folder.

#### Parameters

composer | an EMsgComposer |

### e_msg_composer_print ()

    void
    e_msg_composer_print (EMsgComposer *composer,
                          GtkPrintOperationAction print_action);

Print the message in `composer` .

#### Parameters

composer | an EMsgComposer |
print_action | the print action to start |

### e_msg_composer_set_body_text ()

    void
    e_msg_composer_set_body_text (EMsgComposer *composer,
                                  const gchar *text,
                                  gboolean update_signature);

Loads the given HTML text into the editor.

#### Parameters

composer | a composer object |
text | the HTML text to initialize the editor with |
update_signature | whether update signature in the text after setting it; Might be usually called with TRUE. |

### e_msg_composer_set_body ()

    void
    e_msg_composer_set_body (EMsgComposer *composer,
                             const gchar *body,
                             const gchar *mime_type);

Loads the given data into the composer as the message body.

#### Parameters

composer | a composer object |
body | the data to initialize the composer with |
mime_type | the MIME type of data |

### e_msg_composer_add_header ()

    void
    e_msg_composer_add_header (EMsgComposer *composer,
                               const gchar *name,
                               const gchar *value);

Adds a new custom header created from `name` and `value` . The header is not shown in the user interface but will be added to the resulting MIME message when sending or saving.

#### Parameters

composer | an EMsgComposer |
name | the header's name |
value | the header's value |

### e_msg_composer_set_header ()

    void
    e_msg_composer_set_header (EMsgComposer *composer,
                               const gchar *name,
                               const gchar *value);

Replaces all custom headers matching `name` that were added with `e_msg_composer_add_header()` or `e_msg_composer_set_header()`, with a new custom header created from `name` and `value` . The header is not shown in the user interface but will be added to the resulting MIME message when sending or saving.

#### Parameters

composer | an EMsgComposer |
name | the header's name |
value | the header's value |

### e_msg_composer_remove_header ()

    void
    e_msg_composer_remove_header (EMsgComposer *composer,
                                  const gchar *name);

Removes all custom headers matching `name` that were added with `e_msg_composer_add_header()` or `e_msg_composer_set_header()`.

#### Parameters

composer | an EMsgComposer |
name | the header's name |

### e_msg_composer_set_draft_headers ()

    void
    e_msg_composer_set_draft_headers (EMsgComposer *composer,
                                      const gchar *folder_uri,
                                      const gchar *message_uid);

Add special X-Evolution-Draft headers to remember the most recently saved draft message, even across Evolution sessions. These headers can be used to mark the draft message for deletion after saving a newer draft or sending the composed message.

#### Parameters

composer | an EMsgComposer |
folder_uri | folder URI of the last saved draft |
message_uid | message UID of the last saved draft |

### e_msg_composer_set_source_headers ()

    void
    e_msg_composer_set_source_headers (EMsgComposer *composer,
                                       const gchar *folder_uri,
                                       const gchar *message_uid,
                                       CamelMessageFlags flags);

Add special X-Evolution-Source headers to remember the message being forwarded or replied to, even across Evolution sessions. These headers can be used to set appropriate flags on the source message after sending the composed message.

#### Parameters

composer | an EMsgComposer |
folder_uri | folder URI of the source message |
message_uid | message UID of the source message |
flags | flags to set on the source message after sending |

### e_msg_composer_attach ()

    void
    e_msg_composer_attach (EMsgComposer *composer,
                           CamelMimePart *mime_part);

Attaches `attachment` to the message being composed in the composer.

#### Parameters

composer | a composer object |
mime_part | the CamelMimePart to attach |

### e_msg_composer_get_message ()

    void
    e_msg_composer_get_message (EMsgComposer *composer,
                                gint io_priority,
                                GCancellable *cancellable,
                                GAsyncReadyCallback callback,
                                gpointer user_data);

Retrieve the message edited by the user as a CamelMimeMessage. The CamelMimeMessage object is created on the fly; subsequent calls to this function will always create new objects from scratch.

#### Parameters

composer | an EMsgComposer |

### e_msg_composer_get_message_finish ()

    CamelMimeMessage *
    e_msg_composer_get_message_finish (EMsgComposer *composer,
                                       GAsyncResult *result,
                                       GError **error);

### e_msg_composer_get_message_print ()

    void
    e_msg_composer_get_message_print (EMsgComposer *composer,
                                      gint io_priority,
                                      GCancellable *cancellable,
                                      GAsyncReadyCallback callback,
                                      gpointer user_data);

### e_msg_composer_get_message_print_finish ()

    CamelMimeMessage *
    e_msg_composer_get_message_print_finish
                                   (EMsgComposer *composer,
                                    GAsyncResult *result,
                                    GError **error);

### e_msg_composer_get_message_draft ()

    void
    e_msg_composer_get_message_draft (EMsgComposer *composer,
                                      gint io_priority,
                                      GCancellable *cancellable,
                                      GAsyncReadyCallback callback,
                                      gpointer user_data);

### e_msg_composer_get_message_draft_finish ()

    CamelMimeMessage *
    e_msg_composer_get_message_draft_finish
                                   (EMsgComposer *composer,
                                    GAsyncResult *result,
                                    GError **error);

### e_msg_composer_get_from ()

    CamelInternetAddress *
    e_msg_composer_get_from (EMsgComposer *composer);

### e_msg_composer_get_reply_to ()

    CamelInternetAddress *
    e_msg_composer_get_reply_to (EMsgComposer *composer);

### e_msg_composer_add_message_attachments ()

    void
    e_msg_composer_add_message_attachments
                                   (EMsgComposer *composer,
                                    CamelMimeMessage *message,
                                    gboolean just_inlines);

Walk through all the mime parts in `message` and add them to the composer specified in `composer` .

#### Parameters

composer | the composer to add the attachments to. |
message | the source message to copy the attachments from. |
just_inlines | whether to attach all attachments or just add inline images. |

### e_msg_composer_request_close ()

    void
    e_msg_composer_request_close (EMsgComposer *composer);

### e_msg_composer_can_close ()

    gboolean
    e_msg_composer_can_close (EMsgComposer *composer,
                              gboolean can_save_draft);

### e_msg_composer_get_header_table ()

    EComposerHeaderTable *
    e_msg_composer_get_header_table (EMsgComposer *composer);

### e_msg_composer_get_attachment_view ()

    EAttachmentView *
    e_msg_composer_get_attachment_view (EMsgComposer *composer);

### e_msg_composer_get_raw_message_text ()

    GByteArray *
    e_msg_composer_get_raw_message_text (EMsgComposer *composer);

Returns the text/plain of the message from composer

### e_msg_composer_is_exiting ()

    gboolean
    e_msg_composer_is_exiting (EMsgComposer *composer);

### e_save_spell_languages ()

    void
    e_save_spell_languages (const GList *spell_languages);

## Types and Values

### struct EMsgComposer

    struct EMsgComposer;

## Property Details

### The `“busy”` property

      “busy”                     gboolean

Whether an activity is in progress.

Flags: Read

Default value: FALSE

### The `“focus-tracker”` property

      “focus-tracker”            EFocusTracker *

Flags: Read

### The `“shell”` property

      “shell”                    EShell *

The EShell singleton.

Flags: Read / Write / Construct Only

## Signal Details

### The `“presend”` signal

    gboolean
    user_function (EMsgComposer *emsgcomposer,
                   gpointer      user_data)

Flags: Run Last

### The `“print”` signal

    void
    user_function (EMsgComposer           *emsgcomposer,
                   GtkPrintOperationAction arg1,
                   CamelMimeMessage       *arg2,
                   EActivity              *arg3,
                   gpointer                user_data)

Flags: Run Last

### The `“save-to-drafts”` signal

    void
    user_function (EMsgComposer     *emsgcomposer,
                   CamelMimeMessage *arg1,
                   EActivity        *arg2,
                   gpointer          user_data)

Flags: Run Last

### The `“save-to-outbox”` signal

    void
    user_function (EMsgComposer     *emsgcomposer,
                   CamelMimeMessage *arg1,
                   EActivity        *arg2,
                   gpointer          user_data)

Flags: Run Last

### The `“send”` signal

    void
    user_function (EMsgComposer     *emsgcomposer,
                   CamelMimeMessage *arg1,
                   EActivity        *arg2,
                   gpointer          user_data)

Flags: Run Last