diff options
Diffstat (limited to 'mail')
-rw-r--r-- | mail/ChangeLog | 5 | ||||
-rw-r--r-- | mail/mail-callbacks.c | 3 | ||||
-rw-r--r-- | mail/mail-ops.c | 11 |
3 files changed, 16 insertions, 3 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 1cbeefbd50..0bee194cc6 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,5 +1,10 @@ 2001-06-08 Jon Trowbridge <trow@ximian.com> + * mail-ops.c (mail_send_message): Reattach X-Evolution-Account + information to the message after sending it. This way it can + be used to set the identity properly if we later Resend the + message. + * mail-tools.c (mail_tool_get_local_movemail_path): If you had multiple accounts that used mboxes, and if you received mail in N of those accounts, you would get N copies of each of your e-mail diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c index e998d5e428..448706bf41 100644 --- a/mail/mail-callbacks.c +++ b/mail/mail-callbacks.c @@ -984,8 +984,9 @@ do_edit_messages(CamelFolder *folder, GPtrArray *uids, GPtrArray *messages, void for (i = 0; i < messages->len; i++) { EMsgComposer *composer; - + composer = e_msg_composer_new_with_message (messages->pdata[i]); + if (composer) { gtk_signal_connect (GTK_OBJECT (composer), "send", composer_send_cb, NULL); diff --git a/mail/mail-ops.c b/mail/mail-ops.c index 4812f8c110..de2a933249 100644 --- a/mail/mail-ops.c +++ b/mail/mail-ops.c @@ -485,6 +485,7 @@ mail_send_message(CamelMimeMessage *message, const char *destination, CamelFilte CamelTransport *xport = NULL; CamelFolder *folder; const char *version, *header; + gchar *acct_header; char *transport_url = NULL, *sent_folder_uri = NULL; if (SUB_VERSION[0] == '\0') @@ -499,11 +500,11 @@ mail_send_message(CamelMimeMessage *message, const char *destination, CamelFilte camel_medium_remove_header (CAMEL_MEDIUM (message), "X-Evolution-Source"); /* Get information about the account this was composed by. */ - header = camel_medium_get_header (CAMEL_MEDIUM (message), "X-Evolution-Account"); + acct_header = g_strdup (camel_medium_get_header (CAMEL_MEDIUM (message), "X-Evolution-Account")); if (header) { const MailConfigAccount *account; - account = mail_config_get_account_by_name (header); + account = mail_config_get_account_by_name (acct_header); camel_medium_remove_header (CAMEL_MEDIUM (message), "X-Evolution-Account"); if (account) { transport_url = g_strdup (account->transport->url); @@ -546,6 +547,12 @@ mail_send_message(CamelMimeMessage *message, const char *destination, CamelFilte /* post-process */ info = camel_message_info_new (); info->flags = CAMEL_MESSAGE_SEEN; + + /* Re-attach account header */ + if (acct_header) { + camel_medium_add_header (CAMEL_MEDIUM (message), "X-Evolution-Account", acct_header); + g_free (acct_header); + } if (driver) camel_filter_driver_filter_message (driver, message, info, |