aboutsummaryrefslogtreecommitdiffstats
path: root/composer/e-msg-composer.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2014-06-17 17:51:13 +0800
committerMilan Crha <mcrha@redhat.com>2014-06-17 17:51:13 +0800
commitcef3b32167f0b04f028767eceb3030eea81cabc9 (patch)
treede0301721a0f42c713fb330883dc905b28b4a76d /composer/e-msg-composer.c
parent5fca7d616970c1d96f35ebe898994f1d470d5a7b (diff)
downloadgsoc2013-evolution-cef3b32167f0b04f028767eceb3030eea81cabc9.tar
gsoc2013-evolution-cef3b32167f0b04f028767eceb3030eea81cabc9.tar.gz
gsoc2013-evolution-cef3b32167f0b04f028767eceb3030eea81cabc9.tar.bz2
gsoc2013-evolution-cef3b32167f0b04f028767eceb3030eea81cabc9.tar.lz
gsoc2013-evolution-cef3b32167f0b04f028767eceb3030eea81cabc9.tar.xz
gsoc2013-evolution-cef3b32167f0b04f028767eceb3030eea81cabc9.tar.zst
gsoc2013-evolution-cef3b32167f0b04f028767eceb3030eea81cabc9.zip
Bug 702703 - Be able to overwrite domain in Message IDs
Diffstat (limited to 'composer/e-msg-composer.c')
-rw-r--r--composer/e-msg-composer.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index 45e8d9a507..46705f2e6c 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -1096,7 +1096,8 @@ composer_build_message (EMsgComposer *composer,
CamelMimePart *part;
GByteArray *data;
ESource *source;
- gchar *charset;
+ gchar *charset, *message_uid;
+ const gchar *from_domain;
gint i;
priv = composer->priv;
@@ -1153,9 +1154,25 @@ composer_build_message (EMsgComposer *composer,
context->message = camel_mime_message_new ();
+ if (context->from && camel_internet_address_get (context->from, 0, NULL, &from_domain)) {
+ const gchar *at = strchr (from_domain, '@');
+ if (at)
+ from_domain = at + 1;
+ else
+ from_domain = NULL;
+ } else {
+ from_domain = NULL;
+ }
+
+ if (!from_domain || !*from_domain)
+ from_domain = "localhost";
+
+ message_uid = camel_header_msgid_generate (from_domain);
+
/* Explicitly generate a Message-ID header here so it's
* consistent for all outbound streams (SMTP, Fcc, etc). */
- camel_mime_message_set_message_id (context->message, NULL);
+ camel_mime_message_set_message_id (context->message, message_uid);
+ g_free (message_uid);
build_message_headers (composer, context->message, FALSE);
for (i = 0; i < priv->extra_hdr_names->len; i++) {
@@ -1343,7 +1360,7 @@ composer_build_message (EMsgComposer *composer,
editor = e_msg_composer_get_editor (composer);
view = e_html_editor_get_view (editor);
- inline_images = e_html_editor_view_get_parts_for_inline_images (view);
+ inline_images = e_html_editor_view_get_parts_for_inline_images (view, from_domain);
data = g_byte_array_new ();
text = e_html_editor_view_get_text_html (view);