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>