As soon as I have gotten our Direct Project implementation to work with James 
3.x.0 (I am compilinga against the 3.2.0 release jars), I can look at working 
the JPA MailRepository angle. Unfortunately, other production issues and 
upgrade tasks have taken priority. You know how it is when you help support two 
or three applications. 

Sent from my iPhone

> On Jan 30, 2019, at 11:43 PM, Benoit Tellier <btell...@linagora.com> wrote:
> 
> Hi Garry,
> 
> To answer your previous email:
> 
> At Linagora we rely on "LDAP user repository".
> 
> Yes, we are currently limited to "a mailAddres" -> "a mailbox account".
> Shared mailboxes is not supported so far. That being said
> "RecipientRewrite tables" successfully enables concepts like "Alias",
> "Mail forwarding", "Groups", "Domain redirection". The
> mailAddress<->mailAccount mapping is done at that level. Note that no
> implementation of LDAP based RRT is implemented so far, but such a
> component would make perfect sense and could be implemented/contributed
> in the future.
> 
> I don't understand the "either we are moving away from file-based repos
> or we aren't". All components have data-base alternatives. For the
> example of the mailQueue that you took, there is an old-fashion file
> implementation that I'd personally like to deprecate along with all the
> other file-based-storages implemented in James. But an ActiveMQ
> implementation is available as well as a RabbitMQ one.
> 
> "Dead letter" concept for "Mail processing" is implemented via
> Mail-Repositories (/var/mail/error) and full support for reprocessing is
> granted (at least in guice products).
> 
> (And you are right, we miss a JPA MailRepository implementation... This
> sounds like a nice proposal of contribution!)
> 
> So I really do think that we are, as a project, moving forward to newer
> tech. If you think we are missing something, then this should of course
> be discussed.
> 
> And of course, on all these topics, all contributions are welcomed ;-)
> 
> Cheers,
> 
> Benoit TELLIER
> 
> 
>> On 1/31/19 11:18 AM, Garry Hurley wrote:
>> 
>> A couple of questions. First, what is your usersrepository? If you store 
>> user info in the database, yes, you would have to store each user in there. 
>> If you store it in LDAP, you could store each entry as an inetOrgPerson 
>> object, or a subclass of that, with a mailbox entry for that person. Then 
>> when you authenticate against LDAP, you get the mailbox for delivery. The 
>> LDAP is easier to maintain, but harder to work with and adds complexity if 
>> you don’t already use it for something else. What seems like a trivial thing 
>> - a user to mailbox mapping - to be implemented in the database is missing. 
>> Even an ‘entity’ to mailbox mapping so that you could link a mailbox to a 
>> group or an individual is missing. Also missing from the database is a dead 
>> letter queue, which is still file-based. I can understand the tradeoff of 
>> security for compliance with old-school tech, but either we are moving away 
>> from file-based repos or we aren’t. 
>> 
>> Sent from my iPhone
>> 
>>> On Jan 30, 2019, at 11:00 PM, Benoit Tellier <btell...@linagora.com> wrote:
>>> 
>>> Hello Matt,
>>> 
>>> So as far as I understand your main need would be:
>>> 
>>> ```
>>> WHEN I send an email
>>> THEN it is stored in *myMagicRecipient* INBOX
>>> Regardless of original recipients
>>> ```
>>> 
>>> Quite surprisingly such a "Overwrite envelop" feature is missing...
>>> 
>>> Here is the JIRA: https://issues.apache.org/jira/browse/MAILET-163 Don't
>>> hesitate to PR this ;-)
>>> 
>>> (Combined with a "not RemoteHostIs" you would achieve the rewritting you
>>> need)
>>> 
>>> Cheers,
>>> 
>>> Benoit TELLIER
>>> 
>>>> On 1/30/19 4:13 PM, cryptearth wrote:
>>>> Hello Benoit,
>>>> 
>>>> let me try to re-phrase my goal:
>>>> 
>>>> I've set up a clean install of opensuse 15.0 on my test-rig, named it
>>>> glados, assigned it to my domain cryptearth.de, set sendmail as
>>>> nullclient along with james 3.2.0 and want to collect any mail dropped
>>>> by sendmail into a specific mailbox. The catch: As I also want to use
>>>> sendmail to support mail() command for php, e-mails dropped in by
>>>> apache should be routed extern.
>>>> 
>>>> So: sendmail dropps in mails depending on wich service calls it. Cron
>>>> for example uses gla...@glados.cryptearth.de - apache instead
>>>> wwwrun@localhost - and my guess is that other services might use other
>>>> combinations as well.
>>>> 
>>>> Goal: When a mail is dropped by apache, wich is set to
>>>> webmas...@cryptearth.de by using -f parameter in php.ini, these mails
>>>> should go out as normal to they recipient. Any other mail should get
>>>> collected into a special user, for example
>>>> local-servi...@cryptearth.de or so.
>>>> 
>>>> What I disconvered yet: When the domain wich is used by sendmail is
>>>> not in the domain-list, james thinks it's an external domain and tries
>>>> remote delivery. If the domain is in the domain-list, but not the user
>>>> name - it fast fails to "no user". And if the user for the domain is
>>>> also added it gets delivered into inbox without double in sent. It's
>>>> that last one I want, but without adding any specific user for each
>>>> services wich may use sendmail to try to local-deliver status-mails,
>>>> wich sendmail usual would drop into /var/mail or ~/mail (or what ever
>>>> it is default to).
>>>> 
>>>> I dug through mailets and recipient rewrite and got some hints, but
>>>> couldn't figure out some working yet. One think I come up with is add
>>>> some to mailetcontainer wich re-writes recipient based on remote-host,
>>>> wich for sendmail is localhost. Other idea I had: use some
>>>> re-write-rule based on local hostname, but you recommended against
>>>> using this way.
>>>> 
>>>> Another possible what someone come up with: add my own few lines into
>>>> source and re-build - but I don't know where to add as it's all very
>>>> abstract and I'm not that pro of Java.
>>>> 
>>>> Thanks to anyone in advance,
>>>> 
>>>> Matt
>>>> 
>>>>> Am 30.01.2019 um 05:15 schrieb Benoit Tellier:
>>>>> Hi Matt,
>>>>> 
>>>>> I read the all thread but feel quite confuse about what you try to
>>>>> achieve.
>>>>> 
>>>>> Could you describe it again? (`When ... Then ...` syntax can really
>>>>> help!)
>>>>> 
>>>>> Don't be using regex rewrites - I guess nobody understand what it does.
>>>>> 
>>>>> Maybe you are interested by domain rewrites? Or do you want that all
>>>>> mail received, whatever the recipient, goes to the same mailbox?
>>>>> 
>>>>> Cheers,
>>>>> 
>>>>> Benoit TELLIER
>>>>> 
>>>>>> On 1/28/19 9:57 AM, cryptearth wrote:
>>>>>> Hey there, Matt here again.
>>>>>> 
>>>>>> So, I think a found a possible solution without any source-file mods
>>>>>> but
>>>>>> only clever mailet-config in mailetcontainer.xml.
>>>>>> 
>>>>>> As I dug through the source I found the standard mailets for
>>>>>> RecipientIsLocal. Then I found RecipientIsRegex (I might need some help
>>>>>> here). Also there is something called RewriteTable.
>>>>>> 
>>>>>> I set up a fresh opensuse leap 15 - cron sends mails as
>>>>>> <user>@<hostname>.<domain> - so I set up a small test-script and looked
>>>>>> at log while running james in console mode: when the domainlist doesn't
>>>>>> contain <hostname>.<domain> but only <domain> james thinks that
>>>>>> <hostname>.<domain> is external and tries RemoteDelivery. So I added
>>>>>> <hostname>.<domain> to domainlist. As I just had the domain, but not
>>>>>> the
>>>>>> user, the mail is denied as user doesn't exists for the domain. When I
>>>>>> add the user as <localuser>@<hostname>.<domain> it gets local delivered
>>>>>> without additional copy in sent folder. So as I don't want to set up a
>>>>>> user for each localuser, but also want to avoid fastfail I come up
>>>>>> with:
>>>>>> What if I could early check for <whatever>@<hostname>.<domain> and
>>>>>> could
>>>>>> just re-write it to an existing account in form of <user>@<domain>?
>>>>>> When
>>>>>> recipient is re-written before RecipientIsLocal is checked, then this
>>>>>> should trigger and just deliver any local mail from what ever
>>>>>> service to
>>>>>> the mailbox I want to.
>>>>>> 
>>>>>> So I search through the source tree - but couldn't find anything to
>>>>>> alter the recipient by mailet. All I found was the
>>>>>> recipientrewritetable.xml file and the AddRegexMapping command
>>>>>> available
>>>>>> in james-cli.sh. The xml-config doesn't seem to help, but the
>>>>>> AddRegexMapping command looks good, but I don't understand the command
>>>>>> parameters:
>>>>>> 
>>>>>> AddRegexMapping <user> <domain> <regex>
>>>>>> 
>>>>>> Can someone get me some hint how to use this command? Or where/how I
>>>>>> can
>>>>>> setup the recipient-rewrite before RecipientIsLocal is checked?
>>>>>> 
>>>>>> Thanks in advance,
>>>>>> 
>>>>>> Matt
>>>>>> 
>>>>>>> Am 27.01.2019 um 15:20 schrieb cryptearth:
>>>>>>> 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>
>>>>>>>> 
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
>>>>>> For additional commands, e-mail: server-user-h...@james.apache.org
>>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
>>>>> For additional commands, e-mail: server-user-h...@james.apache.org
>>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
>>>> For additional commands, e-mail: server-user-h...@james.apache.org
>>>> 
>>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
>>> For additional commands, e-mail: server-user-h...@james.apache.org
>>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
>> For additional commands, e-mail: server-user-h...@james.apache.org
>> 
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
> For additional commands, e-mail: server-user-h...@james.apache.org
> 

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

Reply via email to