smtp_address_detail_parse_temp(
client->unexpanded_lda_set->recipient_delimiter,
rcpt->path, &username, &delim, &detail);
+
+ /* Make user name and detail available in the recipient event. The
+ mail_user event (for local delivery) also adds the user field, but
+ adding it here makes it available to the recipient event in general.
+ Additionally, the auth lookups performed for local and proxy delivery
+ can further override the "user" recipient event when the auth service
+ returns a different user name. In any case, we provide the initial
+ value here.
+ */
+ event_add_str(rcpt->event, "user", username);
+ event_add_str(rcpt->event, "detail", detail);
+
if (client->lmtp_set->lmtp_proxy) {
/* proxied? */
if ((ret=lmtp_proxy_rcpt(client, cmd, lrcpt,
return 0;
}
if (strcmp(username, orig_username) != 0) {
+ /* the existing "user" event field is overridden with the new
+ user name, while old username is available as "orig_user" */
+ event_add_str(rcpt->event, "user", username);
+ event_add_str(rcpt->event, "orig_user", orig_username);
+
if (smtp_address_parse_username(pool_datastack_create(),
username, &user, &errstr) < 0) {
i_error("%s: Username `%s' returned by passdb lookup is not a valid SMTP address",