Don't worry, I already feel overwhelmed with a single application and
several collegues contributing on it with me!

Concerning the JPAMailRepository, thank you very much for your proposal!

I do believe it is really nice as it allows JPA users to no more rely on
file-system based storage API at all.

Here is the JIRA, https://issues.apache.org/jira/browse/JAMES-2656 I
would be more than happy to help you implementing this!

Cheers,

Benoit

On 1/31/19 1:24 PM, Garry Hurley wrote:
> 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