Hello Wojtek So the exact need would be
GIVEN a mail to unkn...@domain.tld THEN after the bounce the emails ends up in catch-...@domain.tld mailbox Pros: it enables a review by the admin using standard IMAP tools Cons: it is stripped of the SMTP envelope (delivery context) thus can hardly be re-sent. Redelivering them 100% of the time right will be hard. MailRepositories keep the delivery context and allows for this natively. TLDR the current best practice is to rely on the mailrepository... While in a single domain setup Forward, Resent and friends likely can do the job they are overly complex with subtile differences and I would not personnaly use them... If asked I would rather implement something like: > <processor state="local-address-error" enableJmx="true"> > <mailet match="All" class="MetricsMailet"> > <metricName>mailetContainerLocalAddressError</metricName> > </mailet> > <mailet match="All" class="Bounce"> > <attachment>none</attachment> > </mailet> > <mailet match="All" class="SetRecipient"> > <recipient>catch-...@domain.tld</recipient>> </mailet> > <mailet match="All" class="LocalDelivery"/> > </processor> (UNIX philosophy: provide unitary, simple mailet that do one job and one and can be combined....) For the multi-hosting scenario I bet a SetRecipientLocalPart mailet could make sense. GIVEN configured with local part catch-all WHEN it processes rc...@domain.tld, rc...@domain.tld and rc...@other.com THEN it rewrites recipients to catch-...@domain.tld and catch-...@other.com Those two mailets are simple enough and generic enough IMO to lend in mailet/standard might they solve your use case.-- Best regards, Benoit TELLIER General manager of Linagora VIETNAM. Product owner for Team-Mail product. Chairman of the Apache James project. Mail: btell...@linagora.com Tel: (0033) 6 77 26 04 58 (WhatsApp, Signal) On Aug 21, 2024 11:44 AM, from Wojtek Digging more into it, one could use Forward with `forwardto`, Resend with `to` or Redirect with `to` but the problem I see - they all require configuring full email address instead of specifying only username, which could be somewhat problematic on installations with multiple domains. Is there a mailet or a configuration that would allow specifying only local mailbox name instead of full email? Wojtek On 21/08/2024 11:12, Wojtek wrote: > Hi all, > what is the current best practices to add handling of "catch all" use case > (i.e. redirect all > messages that do not match - and only those that doesn't match! - existing > mailbox to "catch all" > mailbox)? > > I found cwiki.apache.org/confluence/display/JAMES2/ConfigureJamesAsCatchAll > but it's from 5 > years ago and doesn't even mention version. From the looking at it, it would > redirect all messages > to "catch-all". > > OTOH I found github.com/foilen/james-extra-components but it hasn't been > update since 5 > years as well. > > Currently we have: > ```xml > <processor state="transport" enableJmx="true"> > … > <mailet match="HostIsLocal" class="ToProcessor"> > <processor>local-address-error</processor> > <notice>550 - Requested action not taken: no such user here</notice> > </mailet> > … > </processor> > > <processor state="local-address-error" enableJmx="true"> > <mailet match="All" class="MetricsMailet"> > <metricName>mailetContainerLocalAddressError</metricName> > </mailet> > <mailet match="All" class="Bounce"> > <attachment>none</attachment> > </mailet> > <mailet match="All" class="ToRepository"> > <repositoryPath>file://var/mail/address-error/</repositoryPath> > </mailet> > </processor> > ``` > > I would assume that changing last mailet (ToRepository with error repository) > to some mailet. I > looked a the list and mailets in the sources but none of them seems to fit it. > > Any suggestion how to configure it? > --------------------------------------------------------------------- To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org For additional commands, e-mail: server-user-h...@james.apache.org