return smtp_addr;
}
+static void
+mail_deliver_update_event(struct mail_deliver_context *ctx)
+{
+ event_add_str(ctx->event, "message_id", ctx->fields.message_id);
+ event_add_str(ctx->event, "message_subject", ctx->fields.subject);
+ event_add_str(ctx->event, "message_from", ctx->fields.from);
+ event_add_int(ctx->event, "message_size", ctx->fields.psize);
+ event_add_int(ctx->event, "message_vsize", ctx->fields.vsize);
+}
+
static void
update_str_field(pool_t pool, const char **old_str, const char *new_str)
{
mail deliveries. */
ctx->fields.filled = FALSE;
+ mail_deliver_update_event(ctx);
+
io_loop_time_refresh();
delivery_time_msecs = timeval_diff_msecs(&ioloop_timeval,
&ctx->delivery_time_started);
ctx->event = event_create(input->event_parent);
event_add_category(ctx->event, &event_category_mail_delivery);
+ mail_deliver_fields_update(&ctx->fields, ctx->pool, ctx->src_mail);
+ mail_deliver_update_event(ctx);
+
if (ctx->rcpt_to != NULL) {
event_add_str(ctx->event, "rcpt_to",
smtp_address_encode(ctx->rcpt_to));
i_assert(muser->deliver_ctx == NULL);
+ mail_deliver_fields_update(&ctx->fields, ctx->pool, ctx->src_mail);
+ mail_deliver_update_event(ctx);
+
muser->want_storage_id =
var_has_key(ctx->set->deliver_log_format, '\0', "storage_id");
we also want to do this only for commits generated by sieve.
other plugins or storage backends may be creating transactions as
well, which we need to ignore. */
- if ((box->flags & MAILBOX_FLAG_POST_SESSION) != 0)
+ if ((box->flags & MAILBOX_FLAG_POST_SESSION) != 0) {
muser->deliver_ctx->fields = dt->deliver_fields;
+ mail_deliver_update_event(muser->deliver_ctx);
+ }
if (mbox->module_ctx.super.transaction_commit(ctx, changes_r) < 0)
return -1;