From 87ea4d74a051399222b6e0ca0e6f59700c89f923 Mon Sep 17 00:00:00 2001 From: Marco Bettini <marco.bettini@open-xchange.com> Date: Tue, 9 May 2023 07:29:46 +0000 Subject: [PATCH] lib-sieve: act_redirect_execute() - Pick Message-id even if invalid This avoids adding another Message-id if one is already present but of bad quality. --- src/lib-sieve/cmd-redirect.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib-sieve/cmd-redirect.c b/src/lib-sieve/cmd-redirect.c index 25d2c1627..6a3b0a46e 100644 --- a/src/lib-sieve/cmd-redirect.c +++ b/src/lib-sieve/cmd-redirect.c @@ -570,8 +570,13 @@ act_redirect_execute(const struct sieve_action_exec_env *aenv, trans->msg_id = msgdata->id; if (trans->msg_id == NULL) { pool_t pool = sieve_result_pool(aenv->result); - trans->msg_id = trans->new_msg_id = - p_strdup(pool, sieve_message_get_new_id(svinst)); + const char *msg_id; + if (mail_get_message_id_no_validation(msgdata->mail, &msg_id) > 0) + trans->msg_id = p_strdup(pool, msg_id); + else { + msg_id = sieve_message_get_new_id(svinst); + trans->msg_id = trans->new_msg_id = p_strdup(pool, msg_id); + } } /* Create ID for duplicate database lookup */ -- GitLab