diff --git a/src/lib-sieve/plugins/duplicate/tst-duplicate.c b/src/lib-sieve/plugins/duplicate/tst-duplicate.c index db3756b3646baa51bc3e20f8dfbd3afe79037f82..2a000de2bd960eff01a6b5aa9282730ba223a4a4 100644 --- a/src/lib-sieve/plugins/duplicate/tst-duplicate.c +++ b/src/lib-sieve/plugins/duplicate/tst-duplicate.c @@ -403,8 +403,7 @@ tst_duplicate_operation_execute(const struct sieve_runtime_env *renv, val_len = str_len(uniqueid); } else { if (header == NULL) { - ret = mail_get_first_header_utf8(mail, "Message-ID", - &val); + ret = mail_get_message_id(mail, &val); if (ret < 0) { return sieve_runtime_mail_error( renv, mail, "duplicate test: " diff --git a/src/plugins/imap-filter-sieve/imap-filter-sieve.c b/src/plugins/imap-filter-sieve/imap-filter-sieve.c index 5f6b29adc3c19f83db7fc63db3c4e6a785f07b28..97e8faa07ae1e30b7592195f639217e117dda5cd 100644 --- a/src/plugins/imap-filter-sieve/imap-filter-sieve.c +++ b/src/plugins/imap-filter-sieve/imap-filter-sieve.c @@ -954,7 +954,7 @@ imap_sieve_filter_get_msgdata(struct imap_filter_sieve_context *sctx, msgdata_r->envelope.mail_from = mail_from; msgdata_r->envelope.rcpt_to = rcpt_to; msgdata_r->auth_user = user->username; - (void)mail_get_first_header(mail, "Message-ID", &msgdata_r->id); + (void)mail_get_message_id(mail, &msgdata_r->id); } int imap_sieve_filter_run_mail(struct imap_filter_sieve_context *sctx, diff --git a/src/plugins/imapsieve/imap-sieve.c b/src/plugins/imapsieve/imap-sieve.c index e701c63c3dd1ebca6d2379174c1b8ae4c8ab24e6..a3ab53fd404f3e8d20e9fa002fb5478a6b3f7f55 100644 --- a/src/plugins/imapsieve/imap-sieve.c +++ b/src/plugins/imapsieve/imap-sieve.c @@ -819,8 +819,7 @@ int imap_sieve_run_mail(struct imap_sieve_run *isrun, struct mail *mail, i_zero(&msgdata); msgdata.mail = mail; msgdata.auth_user = user->username; - (void)mail_get_first_header(msgdata.mail, "Message-ID", - &msgdata.id); + (void)mail_get_message_id(msgdata.mail, &msgdata.id); /* Compose script execution environment */ diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c index 979976f0b6b28f1b43dbb87f384ff6d57ba8b657..2f51cfc1d7348f9f8aed9c759bd1426e575eec49 100644 --- a/src/plugins/lda-sieve/lda-sieve-plugin.c +++ b/src/plugins/lda-sieve/lda-sieve-plugin.c @@ -944,7 +944,7 @@ lda_sieve_execute(struct lda_sieve_run_context *srctx, msgdata.envelope.mail_params = &mdctx->mail_params; msgdata.envelope.rcpt_to = mdctx->rcpt_to; msgdata.envelope.rcpt_params = &mdctx->rcpt_params; - (void)mail_get_first_header(msgdata.mail, "Message-ID", &msgdata.id); + (void)mail_get_message_id(msgdata.mail, &msgdata.id); srctx->msgdata = &msgdata; diff --git a/src/sieve-tools/sieve-filter.c b/src/sieve-tools/sieve-filter.c index 6ef92100f5c57677aaf95437ade3e800c8f56f29..d71f4bcad9ef80feac3dce05668bbd1b534eed8f 100644 --- a/src/sieve-tools/sieve-filter.c +++ b/src/sieve-tools/sieve-filter.c @@ -108,7 +108,7 @@ static int filter_message(struct sieve_filter_context *sfctx, struct mail *mail) i_zero(&msgdata); msgdata.mail = mail; msgdata.auth_user = senv->user->username; - (void)mail_get_first_header(mail, "Message-ID", &msgdata.id); + (void)mail_get_message_id(mail, &msgdata.id); senv->script_context = &msgdata; sieve_tool_get_envelope_data(&msgdata, mail, NULL, NULL, NULL); diff --git a/src/sieve-tools/sieve-test.c b/src/sieve-tools/sieve-test.c index 92793920be95da74e5773769be6c756a8fa819cf..b623b67145a5547d04e114c4279a5bc2e00f32fa 100644 --- a/src/sieve-tools/sieve-test.c +++ b/src/sieve-tools/sieve-test.c @@ -310,7 +310,7 @@ int main(int argc, char **argv) i_zero(&msgdata); msgdata.mail = mail; msgdata.auth_user = sieve_tool_get_username(sieve_tool); - (void)mail_get_first_header(mail, "Message-ID", &msgdata.id); + (void)mail_get_message_id(mail, &msgdata.id); sieve_tool_get_envelope_data(&msgdata, mail, mail_from, rcpt_to, final_rcpt_to); diff --git a/src/testsuite/testsuite-message.c b/src/testsuite/testsuite-message.c index 4f5752b3e52c2d9b0cee12e56b954646b837825c..c04ab34455a00fe85fed021882ebeae0bc6a8aa4 100644 --- a/src/testsuite/testsuite-message.c +++ b/src/testsuite/testsuite-message.c @@ -42,6 +42,7 @@ static struct smtp_address *testsuite_env_orig_rcpt_to = NULL; static char *testsuite_env_auth = NULL; static pool_t testsuite_msg_pool; +static char *testsuite_msg_id = NULL; static const struct smtp_address * testsuite_message_get_address(struct mail *mail, const char *header) @@ -62,6 +63,7 @@ testsuite_message_get_address(struct mail *mail, const char *header) static void testsuite_message_set_data(struct mail *mail) { const struct smtp_address *recipient = NULL, *sender = NULL; + const char *msg_id; static const struct smtp_address default_recipient = { .localpart = "recipient", @@ -76,6 +78,7 @@ static void testsuite_message_set_data(struct mail *mail) i_free(testsuite_env_rcpt_to); i_free(testsuite_env_orig_rcpt_to); i_free(testsuite_env_auth); + i_free(testsuite_msg_id); /* * Collect necessary message data @@ -101,18 +104,20 @@ static void testsuite_message_set_data(struct mail *mail) testsuite_env_rcpt_to = smtp_address_clone(default_pool, recipient); testsuite_env_orig_rcpt_to = smtp_address_clone(default_pool, recipient); + (void)mail_get_message_id(mail, &msg_id); + testsuite_msg_id = i_strdup(msg_id); + i_zero(&testsuite_msgdata); testsuite_msgdata.mail = mail; testsuite_msgdata.auth_user = sieve_tool_get_username(sieve_tool); testsuite_msgdata.envelope.mail_from = testsuite_env_mail_from; testsuite_msgdata.envelope.rcpt_to = testsuite_env_rcpt_to; + testsuite_msgdata.id = testsuite_msg_id; i_zero(&testsuite_rcpt_params); testsuite_rcpt_params.orcpt.addr = testsuite_env_orig_rcpt_to; testsuite_msgdata.envelope.rcpt_params = &testsuite_rcpt_params; - - (void)mail_get_first_header(mail, "Message-ID", &testsuite_msgdata.id); } void testsuite_message_init(void) @@ -160,6 +165,7 @@ void testsuite_message_deinit(void) i_free(testsuite_env_orig_rcpt_to); i_free(testsuite_env_auth); pool_unref(&testsuite_msg_pool); + i_free(testsuite_msg_id); } void testsuite_envelope_set_sender_address(const struct sieve_runtime_env *renv,