So, as far as I dug through the code, it seems to come down to MailetContext.isLocalEmail(MailAddress) wich is checked by RecipientIsLocal (wich I guess also involve somehow a check of isLocalServer(Domain). In transport-processor there is the line

<mailet match="RecipientIsLocal" class="LocalDelivery" />

I looked into LocalDelivery.java, but I guess when this matches it's to late to perform the test I want to about where the mail comes from and where it should send. JamesMailetContext looks good, as it contains isLocalServer(Domain), wich should also used to check SenderIsLocal (wich shouldn't matter, as this test is performed by source 127.0.0.1). As far as I yet could identify, it all comes down to somehow tell the config, that whatever domain sendmail uses (it's either hostname or hostname.domain) is considered as localServer. The wild-card alias shouldn't be any harder to find or figure out as I simply have to rewrite anything that comes from local and is for local, but isn't in localUserList, is re-written to whatever address I want.

I'll report back when I found the lines to alter.

Matt

Am 26.01.2019 um 22:57 schrieb cryptearth:
Currently I'm just using out-of-the-box after clean build. I'll have a look at the mentioned class and the mailetcontainer. Maybe I'll find my way around. Good James is written in Java - the one language I really know.

Thanks for the point in a possible direction. I'll report back when I got something usefull.

Matt

---- Garry Hurley schrieb ----

Matt, are you using a custom mailet, or working out of the box? Take a look at the source for LocalDelivery.java <http://LocalDelivery.java>, and the configuration for local mail in your mailetcontainer.xml <http://mailetcontainer.xml> file. You may have to override some functionality to get the processing you want.

Sent from my iPhone

> On Jan 26, 2019, at 9:36 AM, cryptearth <cryptea...@cryptearth.de <mailto:cryptea...@cryptearth.de>> wrote:
>
> Hey there, Matt here.
>
> So I got sendmail working with james now (tried postfix, but it always complains forwarding to localhost isn't supported as there is no option to ignore false loopback detection), and when used from apache with additional -f parameter all works good. But as there're other services might drop mail into local queue (crontab specificly) I noticed, that I'm still missing something. My goal is somesort of wildcard alias so that no matter from wich user sendmail gets a message, except the one I use for apache, it should redirect them internally to one of the user-accounts inside james itself. I guess there would be a simple solution if would like all mails to get forwareded, but I don't think there is a blacklist syntax so that mails from specific services with non-local recipients got send out.
>
> Currently I'm using 3.2.0 <tel:3.2.0> final release commit. I also looked into the mailetcontainer.xml <http://mailetcontainer.xml> file and I guess it's possible in there to specify this rule:
>
> redirect anything local, except address set in apache config, to user X, otherwise when from apache with non-local target -> transport
>
> Could anyone maybe give me a hint?
> Other solution: redirect anything local from sendmail to processing and with another task process the mails like some short lines of additional Java.
>
> Matt

---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org <mailto:server-user-unsubscr...@james.apache.org> For additional commands, e-mail: server-user-h...@james.apache.org <mailto:server-user-h...@james.apache.org>


Reply via email to