diff --git a/crates/smtp/src/config/session.rs b/crates/smtp/src/config/session.rs index 2f75ec28..342df205 100644 --- a/crates/smtp/src/config/session.rs +++ b/crates/smtp/src/config/session.rs @@ -294,6 +294,8 @@ impl ConfigSession for Config { EnvelopeKey::RemoteIp, EnvelopeKey::LocalIp, EnvelopeKey::HeloDomain, + EnvelopeKey::Sender, + EnvelopeKey::SenderDomain, ]; Ok(Mail { script: self @@ -320,9 +322,20 @@ impl ConfigSession for Config { EnvelopeKey::LocalIp, EnvelopeKey::HeloDomain, ]; + let available_keys_full = [ + EnvelopeKey::Sender, + EnvelopeKey::SenderDomain, + EnvelopeKey::Recipient, + EnvelopeKey::RecipientDomain, + EnvelopeKey::AuthenticatedAs, + EnvelopeKey::Listener, + EnvelopeKey::RemoteIp, + EnvelopeKey::LocalIp, + EnvelopeKey::HeloDomain, + ]; Ok(Rcpt { script: self - .parse_if_block::>("session.rcpt.script", ctx, &available_keys)? + .parse_if_block::>("session.rcpt.script", ctx, &available_keys_full)? .unwrap_or_default() .map_if_block(&ctx.scripts, "session.rcpt.script", "script")?, relay: self @@ -332,7 +345,7 @@ impl ConfigSession for Config { .parse_if_block::>>( "session.rcpt.directory", ctx, - &available_keys, + &available_keys_full, )? .unwrap_or_default() .map_if_block( @@ -353,7 +366,7 @@ impl ConfigSession for Config { .parse_if_block::>>( "session.rcpt.rewrite", ctx, - &available_keys, + &available_keys_full, )? .unwrap_or_default(), }) diff --git a/tests/resources/test_config.toml b/tests/resources/test_config.toml index 1fbfc296..e2ce00aa 100644 --- a/tests/resources/test_config.toml +++ b/tests/resources/test_config.toml @@ -157,6 +157,7 @@ member-of = ["superusers"] name = "john" description = "John Doe" secret = "12345" +#secret = "$argon2id$v=19$m=16,t=2,p=1$Ym1GMmMwd210YXpGWUF2Ng$MKUyI28a4OADfd7r2iHulQ" email = ["john@example.org", "jdoe@example.org", "john.doe@example.org"] email-list = ["info@example.org"] member-of = ["sales"]