}
/* extract the first substring that looks like a message-id */
-static char *extract_message_id (const char *s)
+char *mutt_extract_message_id (const char *s)
{
const char *p;
char *r;
{
/* We add a new "Message-ID:" when building a message */
FREE (&e->message_id);
- e->message_id = extract_message_id (p);
+ e->message_id = mutt_extract_message_id (p);
matched = 1;
}
else if (!ascii_strncasecmp (line + 1, "ail-", 4))
int query_quadoption (int, const char *);
int quadoption (int);
+char* mutt_extract_message_id (const char *);
+
ADDRESS *mutt_default_from (void);
ADDRESS *mutt_get_address (ENVELOPE *, char **);
ADDRESS *mutt_lookup_alias (const char *s);
env->reply_to = rfc822_parse_adrlist (env->reply_to, uh->data + 9);
}
else if (ascii_strncasecmp ("message-id:", uh->data, 11) == 0)
- mutt_str_replace (&env->message_id, uh->data + 11);
+ {
+ char *tmp = mutt_extract_message_id (uh->data + 11);
+ if (rfc822_valid_msgid (tmp) >= 0)
+ {
+ FREE(&env->message_id);
+ env->message_id = tmp;
+ } else
+ FREE(&tmp);
+ }
else if (ascii_strncasecmp ("to:", uh->data, 3) != 0 &&
ascii_strncasecmp ("cc:", uh->data, 3) != 0 &&
ascii_strncasecmp ("bcc:", uh->data, 4) != 0 &&