Re: James 3.8 one OpenSuSE 15.5

cryptearth <[email protected]> Tue, 6 Feb 2024 01:02:18 +0100
Newsgroups gmane.comp.jakarta.james.user
Message-ID <[email protected]>
Well, just as an update:

As the OpenSuSE forums are as helpful as always: not at all - I looked 
up options to change James listen directly on TCP/25 itself - and had 
not much luck.

I don't want to spam the list with the details as it doesn't belong 
here, the short version is: The packet filter doesn't seem to work the 
way I expected it to according to its own docs.

There also seem other options such as privilege dropping or enabling 
non-root processes to bind to ports below 1024 - but the former isn't 
supported by Java and the latter works not on a per-process basis but 
global on a per-executable scope: When I allow James to bind to ports 
below 1024 so can any other Java process, not exactly what I wanted.

I'm also not quite sure if it's just OpenSuSE biting me once again as it 
did for so many years with the somehow screwed up MySQL/MariaDB packages 
as when testing in a VM with Arch it works as expected. I guess I should 
start to reconsider keep using OpenSuSE for my servers as it keeps 
throwing rocks into my path, its community isn't really helpful and many 
informations one finds just don't work for one reason or another with no 
clue why or how to fix it.

Anyway ...

As for developing a client for the web-admin api: As its only security 
seems to be the JWT I still have to get my head around how to implement 
that securely so that only authorized admins with access to a valid 
token can access the web-admin.

I also plan to keep it modular so that each function can get implemented 
independently without much spaghetti code. I'm aware about some sort of 
markup languages so one can just write a simple parser and then define 
such functionalities via config files. But I guess that's something for 
someone with more experience in that style of coding.

Unfortunately I won't have much time in the next few weeks as overtime 
and extra work is planed throughout february. But I'll keep it in mind 
as I want to give something back to  such a great project.


So long,

have a good one y'all.

Matt

On 15.01.24 03:45, Rene Cordier wrote:
> Hi Matt,
>
> Happy to see the transition didn't look too hard for you ! Regarding 
> the webadmin, no there is no UI at the moment. It's been a task in the 
> backlog for a long time though. But if you want to take a look, and 
> even contribute, the task is here: 
> https://issues.apache.org/jira/browse/JAMES-1931 .
>
> I'm sure people would be happy to see a contribution about this and 
> support you regarding the coding standards of the project with 
> reviews, even if the UI is not really good looking, it is ok I think. 
> It's destined more to sys admins than lambda users for a backend 
> software, as long as it does the job, it's enough already IMO :)
>
> Cheers,
>
> Rene.
>
> On 1/14/24 09:07, cryptearth wrote:
>> Hi everyone,
>>
>> so, I had a look into Guice+JPA and it's quite easy to setup by just 
>> reuse the configs I have for the Spring build. And although I still 
>> can use james-cli (although a bit different) I now have access to the 
>> REST-api via the webadmin (until now it seems I misunderstood it: I 
>> thought the "web admin" to be some browser admin panel instead of 
>> just an REST-api). And although it seems rather easy to use it to do 
>> the same as with the james-cli and even more - looking in the list 
>> archive: Is there any "client" for it like some webpage or some 
>> standalone gui?
>>
>> Guess if not it'd be a nice project to get something together - 
>> although I'm only a hobbyist and hence the "most advanced" I was able 
>> to get done was a simple networked battle ships game with some very 
>> ugly ui-code for the placement of the ships. So I guess if at all I 
>> can only provide some simple stuff and far from the code standards of 
>> ASF.
>>
>> The next will now be to switch over to Guice+JPA and also upgrade my 
>> backup server. Nice to see I still can learn about James - just 
>> another confirmation it was the right choice after Citadel/UX got 
>> broken, although I'll re-visit other setups with sendmail, postfix or 
>> exim just for the fun of additional knowledge.
>>
>> So long ... have a good one.
>>
>> Matt
>>
>> Am 11.01.24 um 05:40 schrieb Rene Cordier:
>>> Hello Matt,
>>>
>>> Thanks for keeping reporting dead links, I try to fix them every 
>>> time firing PRs :)
>>>
>>> Regarding the correct link to the jpa guice sample conf: 
>>> https://github.com/apache/james-project/tree/master/server/apps/jpa-app/sample-configuration
>>>
>>> Regarding the link in a previous email with jpa-guice installation 
>>> guide (but I think the readme is likely more complete): 
>>> https://james.apache.org/server/install/guice-jpa.html
>>>
>>> For this though: 
>>> https://james.staged.apache.org/james-project/3.8.0/servers/basic/conf/index.html, 
>>> yes that's still not done, it's normal atm, as said this new doc is 
>>> still a work in progress ^^'
>>>
>>> Regarding your mail with INVALID suffixed to it... No idea really^^' 
>>> Might want to ask the people managing the mailing lists I guess.
>>>
>>> Well if anything else don't hesitate :)
>>>
>>> Rene.
>>>
>>> On 1/11/24 02:45, cryptearth wrote:
>>>> Hello Rene,
>>>>
>>>> thank you for your reply.
>>>>
>>>> I tried to look into the docs and the readme, but I get redirected 
>>>> to these two pages without content:
>>>>
>>>> https://github.com/apache/james-project/tree/master/server/container/guice/jpa-guice/sample-configuration 
>>>>
>>>> https://james.staged.apache.org/james-project/3.8.0/servers/basic/conf/index.html 
>>>>
>>>>
>>>> From the readme it looks simple to get the jpa-guice package to run 
>>>> as it seems I can re-use a lot of my current configs. As for the 
>>>> required keystore: All I found was its use for TLS - as I use the 
>>>> new PEM variant it should also work this way. I'll give it a shot 
>>>> in a VM.
>>>>
>>>> Nice to see that the pop3 server is disabled by default. I'm sure 
>>>> this protocol still has its uses, but as it downloads the messages 
>>>> from the server and removes them while doing so I only see an 
>>>> application where messages not supposed to be left on the server 
>>>> like for quota reasons or something like privacy.
>>>>
>>>> As for MySQL/MariaDB vs PostgreSQL: The only think I know about 
>>>> PostgreSQL is that it exist but never used it due to most beginner 
>>>> books I read when I started roughly over 15 years ago all mentioned 
>>>> it but only used MySQL anyways. Shouldn't make a difference which 
>>>> to use.
>>>>
>>>> As for forwarding mails to my backup: I already came up with some 
>>>> ideas to make this work in both ways without causing loops so that 
>>>> mails received by the backup will also get forwarded to the main 
>>>> when it comes back up.
>>>>
>>>> btw: I noticed that my domain gets an .INVALID appended to it - but 
>>>> only here on this mailing list. Testmails to other services don't 
>>>> show this. Anyone maybe has an idea about that?
>>>>
>>>>
>>>> Have a good one.
>>>>
>>>> Matt
>>>>
>>>> On 10.01.24 04:28, Rene Cordier wrote:
>>>>> Hi Matt,
>>>>>
>>>>> Let me answer you this time below in each of your points :)
>>>>>
>>>>> Cheers,
>>>>>
>>>>> Rene.
>>>>>
>>>>> On 1/9/24 21:27, cryptearth wrote:
>>>>>> Hello Rene,
>>>>>>
>>>>>> thank you for the kind words.
>>>>>>
>>>>>> May let me answer your points:
>>>>>>
>>>>>> - Spring vs. Guice: I use James since the Beta of 3.0 and if I 
>>>>>> recall correctly back then the Spring package was the one to use. 
>>>>>> By the usual "never change a running system" I not changed since. 
>>>>>> I had a quick look into it, but unfortunately the links on the 
>>>>>> install instructions https://james.apache.org/server/install.html 
>>>>>> only lead to a 404 - so there's something missing. Also I seem to 
>>>>>> require docker - which I don't have any experience with. I'd 
>>>>>> rather prefer just to build a package, unpack it and start it 
>>>>>> without having to deal with any extra containerization around it. 
>>>>>> It seems I require some help to setup a guice install.
>>>>>
>>>>> Regarding the 404 on the install page, it looks like you are 
>>>>> right. It's not normal and I might take a look at it, thanks for 
>>>>> the feedback! However, docker is one way, but like Sprint you can 
>>>>> still just run a jar with Guice as well. You can see the download 
>>>>> page for example (where the links seem to work) : 
>>>>> https://james.apache.org/download.cgi .
>>>>>
>>>>> If you want to try to switch to Guice, the JPA james server is the 
>>>>> one for you, that you can plug with MariaDB. The distributed 
>>>>> version is for heavy deployments (which I don't think interests 
>>>>> you here) with cassandra, opensearch, rabbitmq, ... => 
>>>>> https://www.apache.org/dyn/closer.lua/james/server/3.8.0/james-server-jpa-guice.zip 
>>>>> . You will see in the README as well in the zip some basic 
>>>>> instructions to run it, with docker or manually with the jar like 
>>>>> you are used to.
>>>>>
>>>>> I totally understand the reason behind the fact that you started 
>>>>> with Spring, so far it works, and it's safe to stick to it. Quite 
>>>>> a fair statement actually. The problem is that though the main 
>>>>> development efforts since a while are being done on Guice, and the 
>>>>> Spring one is quickly maintained, as nobody seems fully willing to 
>>>>> keep developing on it now. It works but could have potentially 
>>>>> some vulnerabilities... I'm thinking for example the spring 
>>>>> dependencies, that are old and outdated I think^^'
>>>>>
>>>>>>
>>>>>> - as for using MariaDB: This goes back to 2015 when I started to 
>>>>>> rent my server and own domain. Back then I had basically no 
>>>>>> knowledge about server administration let alone set up a mail 
>>>>>> server. Although there're complete guides on how to setup postfix 
>>>>>> with dovecot and such on opensuse I not managed to get it 
>>>>>> working. So I looked for a simple complete solution and ended up 
>>>>>> using Citadel/UX. For some reason with some update it broke to a 
>>>>>> state I wasn't able to start it again. Hence I wasn't able to get 
>>>>>> any data out of it as for some reason I just was not able to 
>>>>>> access the BerkeleyDB data file. As I also wasn't able to get the 
>>>>>> regular stuff with maildir running I just wanted a setup using a 
>>>>>> regular MySQL not just for config- and user-data but also as the 
>>>>>> mail storage backend so that in the event I encountered such a 
>>>>>> situation again I can just use regular tools to restore a mysql 
>>>>>> database. As I'm also a hobbyist Java developer for me it was a 
>>>>>> simple idea of "there has to be some simple mail server 
>>>>>> implemented in Java" - and this is how I ended up discovering and 
>>>>>> using James ever since.
>>>>>>
>>>>>> It also already came into play that for some reason I had to 
>>>>>> manually restore my database - exactly the reason why I chose 
>>>>>> MySQL as storage backend. As it was helpful for the reason I 
>>>>>> chose it I rather stick to it for that reason. The switch from 
>>>>>> MySQL to MariaDB was just something OpenSuSE did - so I followed 
>>>>>> it. As a user I not noticed any differences.
>>>>>>
>>>>>> As for the database issues mentioned: For some reason I had to 
>>>>>> set up the MySQL- and later the MariaDB-repos instead of using 
>>>>>> what comes with the OpenSuSE repos. I don't know what the 
>>>>>> difference was but it prevented the initial setup of the database 
>>>>>> structure on first run. Hence I'm glad that this is now fixed - 
>>>>>> whoever is reponsible for it.
>>>>> I get this :) I was just trying to inform you that these days we 
>>>>> work also on a Postgresql exclusive implementation for James. JPA 
>>>>> is good to be able to plug to a lot of different SQL databases 
>>>>> with the same code, but performances can be a bit meh. We are 
>>>>> working on a full postgresql implementation of James in parallel 
>>>>> as most people using JPA in the community are using Postgresql as 
>>>>> their database (as it is quite a popular one). The goal is to have 
>>>>> better performance here than with JPA for this particular db. But 
>>>>> likely JPA might be enough for your singular usage. Was just 
>>>>> throwing that here if maybe it was interesting for you.
>>>>>>
>>>>>>
>>>>>> - sync between main server and backup: I guess the additional 
>>>>>> forward from the main server to the backup and handle them 
>>>>>> independently seems like a neat idea simple to implement. I 
>>>>>> mostly rely on my backup when doing maintenance on the root like 
>>>>>> OS updates which require a system reboot. It's not I want to try 
>>>>>> to build a distributed synchronized cluster. I guess for that 
>>>>>> there're better solutions out there. Looking thru the docs 
>>>>>> there's something pointing to 
>>>>>> https://github.com/apache/james-project/blob/james-project-3.8.0/docs/modules/servers/pages/distributed/run-docker.adoc 
>>>>>> - but that doesn't exists or isn't set to public, same as for the 
>>>>>> guice setup. So it seems there's documentation for what I want to 
>>>>>> do - but it's not available to me.
>>>>>
>>>>> That new Antora documentation is still incomplete and yeah there 
>>>>> is issues for some reasons with the distributed part that does not 
>>>>> render each time during build... Might need tot ake an other look 
>>>>> at it! For the temporary link of it though if it interests you: 
>>>>> https://james.staged.apache.org/james-project/3.8.0/index.html
>>>>>
>>>>> Distributed doc in the source code though if you feel like 
>>>>> building it yourself: 
>>>>> https://github.com/apache/james-project/tree/master/server/apps/distributed-app/docs
>>>>>
>>>>> I think yes forwarding your mails to both your main and backup 
>>>>> servers is simple and efficient :)
>>>>>
>>>>>>
>>>>>> Have a good one.
>>>>>>
>>>>>> Matt
>>>>>>
>>>>>> On 09.01.24 08:44, Rene Cordier wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> Interesting read thanks.
>>>>>>>
>>>>>>> Few remarks though, but feel free to agree or not :) :
>>>>>>>
>>>>>>> - any reason to still run the spring version of James? That 
>>>>>>> version I believe is not always up-to-date with dependencies 
>>>>>>> (specially the sprint dependencies). Truth is it might get 
>>>>>>> deprecated and removed in later release if a consensus is 
>>>>>>> reached, as all active dev is done on the Guice versions now. 
>>>>>>> You might want to check that (JPA Guice here probably closest to 
>>>>>>> the Spring version)
>>>>>>>
>>>>>>> - note that there is active development at the moment (still 
>>>>>>> WIP) regarding a Postgresql reactive implementation with james 
>>>>>>> (Guice). I saw you seem to use MariaDB but might interest you 
>>>>>>> for the future maybe?
>>>>>>>
>>>>>>> - for sync between your main server and backup, maybe just 
>>>>>>> redirect the mails to both platforms, and let them treat the 
>>>>>>> mails separately? If not I guess db backup and sync between the 
>>>>>>> two could do it too.
>>>>>>>
>>>>>>> Good job on running latest James on the new OpenSuse though, 
>>>>>>> thanks for sharing!
>>>>>>>
>>>>>>> Rene.
>>>>>>>
>>>>>>> On 1/9/24 10:17, cryptearth wrote:
>>>>>>>> Hello there everybody,
>>>>>>>>
>>>>>>>> happy new year 2024 to all of you.
>>>>>>>> It's been quite some time since I was last active on this 
>>>>>>>> maillist. After
>>>>>>>> upgrading my server to OpenSuSE 15.5 and James to 3.8 and after 
>>>>>>>> reading the
>>>>>>>> recent topics on the web archive I decided to post a small 
>>>>>>>> round up how it
>>>>>>>> went this way.
>>>>>>>>
>>>>>>>> Important word of warning and security:
>>>>>>>> This is only a personal write-down how I did my setup. I'm 
>>>>>>>> aware there're
>>>>>>>> still some security improvements to be done. This is meant as 
>>>>>>>> an informative
>>>>>>>> guide. I'm by no means responsible for any security issues that 
>>>>>>>> may arise by
>>>>>>>> following this. I myself got hacked by the Log4J issue mostly 
>>>>>>>> due to not
>>>>>>>> applying the available update fast enough. It's your own 
>>>>>>>> responsibility to
>>>>>>>> make your setup secure. All I can offer are some guidelines 
>>>>>>>> from personal
>>>>>>>> experience.
>>>>>>>>
>>>>>>>> That warning out now let's get to the real topic.
>>>>>>>>
>>>>>>>> As several of the active devs here know I use James for quite 
>>>>>>>> some time now
>>>>>>>> and over the years encountered several issues mostly specific 
>>>>>>>> to OpenSuSE and
>>>>>>>> the packages provided by its repositories. Luckily this time 
>>>>>>>> everything went
>>>>>>>> smoothly.
>>>>>>>>
>>>>>>>> I started from a fresh clean "server"-type install, but this 
>>>>>>>> should be
>>>>>>>> applicable to any existing system as well. So the first step is 
>>>>>>>> to fully update
>>>>>>>> the new system.
>>>>>>>>
>>>>>>>> As OpenSuSE comes with postfix I replace it with sendmail for 
>>>>>>>> later. I guess
>>>>>>>> it's also possible with postfix or exim or any other MTA 
>>>>>>>> providing the
>>>>>>>> required sendmail dependency. Using sendmail was just the 
>>>>>>>> simplest option I
>>>>>>>> figured out when I first used it.
>>>>>>>> The keyword here is "nullclient": It configures sendmail to 
>>>>>>>> just forward
>>>>>>>> everything to James without any handling itself. For this 
>>>>>>>> sendmail comes with
>>>>>>>> an almost ready-to-use config which only needs one change in 
>>>>>>>> /etc/sendmail/
>>>>>>>> linux.nullclient.mc in line 27 by replacing the example
>>>>>>>> "mailhub.domain.notused" with "localhost". Then just generate 
>>>>>>>> the new
>>>>>>>> sendmail.cf from it (either as root or via sudo):
>>>>>>>> m4 /etc/mail/linux.nullclient.mc > /etc/sendmail.cf
>>>>>>>>
>>>>>>>> I also have to edit the systemd script. For some reason the 
>>>>>>>> systemctl edit
>>>>>>>> command works a bit unexpected for simple edits so by appending 
>>>>>>>> --full it
>>>>>>>> becomes a full override. The service file needs two changes:
>>>>>>>>
>>>>>>>> 1) moving the PIDFile from /var/run to /run as hinted by 
>>>>>>>> systemctl status
>>>>>>>> message:
>>>>>>>> PIDFile=/run/sendmail.pid
>>>>>>>>
>>>>>>>> 2) remove the -bd flag from the start args to prevent sendmail 
>>>>>>>> from blocking
>>>>>>>> port TCP/25:
>>>>>>>> Environment="SENDMAIL_ARGS=-L -Am -q30m -om"
>>>>>>>>
>>>>>>>> Check if sendmail service is enabled and started: systemctl 
>>>>>>>> status sendmail
>>>>>>>> At least enabled it so it gets started at reboot. As James 
>>>>>>>> isn't setup yet to
>>>>>>>> take its mails don't start it yet - it could cause a hang into 
>>>>>>>> an infinite
>>>>>>>> loop.
>>>>>>>>
>>>>>>>> Before get to James I prepare the rest of the system by install 
>>>>>>>> these packages
>>>>>>>> (can be installed along when switching postfix for sendmail):
>>>>>>>> - java-17-openjdk-devel
>>>>>>>> - git
>>>>>>>> - maven
>>>>>>>> - mariadb
>>>>>>>> - phpMyAdmin-apache
>>>>>>>> - yast2-http-server
>>>>>>>> The required dependencies get pulled in by the resolver. After 
>>>>>>>> installing the
>>>>>>>> packages YaST tells you to secure MariaDB. So I do this right 
>>>>>>>> away by running
>>>>>>>> mariadb-secure-installation as root/sudo and set a root 
>>>>>>>> password. All other
>>>>>>>> questions can be answered with thier default option (just hit 
>>>>>>>> enter).
>>>>>>>>
>>>>>>>> To get phpMyAdmin running only the initial setup using "yast 
>>>>>>>> http-server" is
>>>>>>>> required. Select enable PHP in the 2nd step and complete the 
>>>>>>>> setup by just
>>>>>>>> hitting F10 a couple times. If the Apache2 server is accessible 
>>>>>>>> via the
>>>>>>>> internet care should be taken by limiting phpMyAdmin to 
>>>>>>>> localhost. Edit /etc/
>>>>>>>> apache2/conf.d/phpMyAdmin.conf line 27 to "Require local" and 
>>>>>>>> use ssh tunnels.
>>>>>>>> If you have services like a vpn or a tor hidden service running 
>>>>>>>> you may want
>>>>>>>> to secure it even further with something like an .htaccess or 
>>>>>>>> similar. This
>>>>>>>> way you prevent attackers from trying to bruteforce your 
>>>>>>>> database password.
>>>>>>>>
>>>>>>>> Complete the pre-setup by use phpMyAdmin to add a new user for 
>>>>>>>> James.
>>>>>>>>
>>>>>>>> Now let's build James:
>>>>>>>> git clone https://github.com/apache/james-project -b 
>>>>>>>> james-project-3.8.0
>>>>>>>> cd james-project
>>>>>>>> mvn clean package -DskipTests -T 1C
>>>>>>>> As I use the spring package I then unpack the tar in 
>>>>>>>> james-project/server/
>>>>>>>> apps/spring-app/target/james-server-spring-app-3.8.0-app.tar.gz.
>>>>>>>> I also need to get the mariadb-connector/J: 
>>>>>>>> https://mariadb.com/downloads/
>>>>>>>> connectors/ and place the .jar in the 
>>>>>>>> james-server-spring-app-3.8.0/lib
>>>>>>>> folder.
>>>>>>>> I'm not sure why this isn't distributed along or part of the 
>>>>>>>> package manifest
>>>>>>>> to pull from the repos - guess this is some licence nonesense.
>>>>>>>>
>>>>>>>> It's config time now - and there's not that much to do.
>>>>>>>> As I don't use POP3 the first I do is disable the POP3 server.
>>>>>>>> Next I set up the database stuff by change the driver to
>>>>>>>> org.mariadb.jdbc.Driver
>>>>>>>> and the connector-string to
>>>>>>>> jdbc:mariadb://localhost:3306/james
>>>>>>>> Btw: As pretty much any modern JDBC driver should be a type 4.x 
>>>>>>>> there's no
>>>>>>>> need to specify the driver class name or do something like
>>>>>>>> Class.forName()
>>>>>>>> As long as the driver jar is in classpath on startup of the JVM 
>>>>>>>> it gets pulled
>>>>>>>> in via the ServiceLoader-API.
>>>>>>>>
>>>>>>>> Next I set my domain and the greetings in the imap and smtp 
>>>>>>>> servers. I also
>>>>>>>> enable StartTLS for both imap and smtp. As for outgoing smtp I 
>>>>>>>> also enable
>>>>>>>> StartTLS by adding this to the RemoteDelievery in the 
>>>>>>>> mailetcontainer.xml:
>>>>>>>> <startTLS>true</startTLS>
>>>>>>>> This should be added by default as it's only mentioned in the 
>>>>>>>> RemoteDelievery
>>>>>>>> javadoc but not in the XML doc nor in the config doc.
>>>>>>>> Until now I used a Java keystore for the certificate and key. 
>>>>>>>> But using the new
>>>>>>>> PEM files directly skips this. Thanks for who added this.
>>>>>>>>
>>>>>>>> The last part is to deal with sendmail and apache2/php mail. 
>>>>>>>> For this I first
>>>>>>>> add two users to James (along with others like postmaster): 
>>>>>>>> webmaster and
>>>>>>>> local-service. Then I add this to the mailetcontainer.xml right 
>>>>>>>> at the top of
>>>>>>>> the root processor:
>>>>>>>>
>>>>>>>>          <matcher name="local-service"
>>>>>>>> match="org.apache.james.mailetcontainer.impl.matchers.And">
>>>>>>>>                  <matcher 
>>>>>>>> match="RemoteAddrInNetwork=127.0.0.0/8" />
>>>>>>>>                  <matcher
>>>>>>>> match="org.apache.james.mailetcontainer.impl.matchers.Not">
>>>>>>>>                          <matcher match="SMTPAuthSuccessful" />
>>>>>>>>                  </matcher>
>>>>>>>>                  <matcher
>>>>>>>> match="org.apache.james.mailetcontainer.impl.matchers.Not">
>>>>>>>>                          <matcher 
>>>>>>>> match="[email protected]" />
>>>>>>>>                  </matcher>
>>>>>>>>                  <matcher
>>>>>>>> match="org.apache.james.mailetcontainer.impl.matchers.Not">
>>>>>>>>                          <matcher match="RecipientIs=local-
>>>>>>>> [email protected]" />
>>>>>>>>                  </matcher>
>>>>>>>>          </matcher>
>>>>>>>>
>>>>>>>>          <mailet match="local-service" class="Redirect">
>>>>>>>> <to>[email protected]</to>
>>>>>>>>          </mailet>
>>>>>>>>
>>>>>>>> To explain its purpose:
>>>>>>>> When starting James via crontab by root crond sends a start 
>>>>>>>> report via
>>>>>>>> sendmail. In order for sendmail to not get stuck in an endless 
>>>>>>>> loop trying to
>>>>>>>> deliver the crond status I have to provide some drop off 
>>>>>>>> destination for it.
>>>>>>>> But as I also want to send e-mails by PHP I had to get a bit 
>>>>>>>> creative
>>>>>>>> filtering. It basically goes like this:
>>>>>>>>
>>>>>>>> IF incoming mail comes from localhost
>>>>>>>> AND is NOT authenticated via smtp auth
>>>>>>>> AND is NOT sent by webmaster (from php)
>>>>>>>> AND is NOT already redirected to local-service
>>>>>>>> THEN redirect to local-service
>>>>>>>>
>>>>>>>> This rule maybe can be written better - but it was the simplest 
>>>>>>>> I came up
>>>>>>>> with. The check for the recipient is required so the mail 
>>>>>>>> doesn't get
>>>>>>>> redirected to itself again. The check for the webmaster is 
>>>>>>>> required as
>>>>>>>> sendmail drops off php mails with wwwrun@localhost, which is 
>>>>>>>> overriden by the -
>>>>>>>> f parameter to webmaster. Any other client that regular logs in 
>>>>>>>> via AUTH is
>>>>>>>> ignored anyway. And the whole thing is limited to localhost.
>>>>>>>>
>>>>>>>> Finally, add a
>>>>>>>> @reboot /path/to/james/bin/james start
>>>>>>>> to roots crontab for james autostart.
>>>>>>>>
>>>>>>>> If everything was done correctly james should start up just 
>>>>>>>> fine for the first
>>>>>>>> time (it actually already had to for adding the users - but 
>>>>>>>> this can be done
>>>>>>>> now).
>>>>>>>> I do the first start via "console" to verify everything is done 
>>>>>>>> correctly.
>>>>>>>> After all is done and james starts correctly I just reboot the 
>>>>>>>> system. Now
>>>>>>>> when all comes up by itself the local-service user should have 
>>>>>>>> a mail confirm
>>>>>>>> the successful start of James which also confirms that the 
>>>>>>>> sendmail nullclient
>>>>>>>> and the mailet redirect works.
>>>>>>>>
>>>>>>>> A common failure can be an issue with name resolution. In this 
>>>>>>>> case you have
>>>>>>>> to manually set /etc/hosts and reboot again. This can also be 
>>>>>>>> done early on as
>>>>>>>> one of the first few steps after updating the system.
>>>>>>>>
>>>>>>>> To send mails from apache this can be done like this:
>>>>>>>>
>>>>>>>> <?php
>>>>>>>>          $to="[email protected]";
>>>>>>>>          $subject=$content="this is a apache webmail test";
>>>>>>>>          $headers = array(
>>>>>>>>                  'From' => 'CryptEarth.de Webmaster 
>>>>>>>> <[email protected]>',
>>>>>>>>                  'Reply-To' => '[email protected]',
>>>>>>>>                  'X-Mailer' => 'PHP/' . phpversion()
>>>>>>>>          );
>>>>>>>>          mail($to, $subject, $content, $headers, 
>>>>>>>> "[email protected]");
>>>>>>>> ?>
>>>>>>>>
>>>>>>>> A few improvements that can (and should) be done:
>>>>>>>>
>>>>>>>> - don't start james as root but rather move the ports to 8025 
>>>>>>>> and 8143 and use
>>>>>>>> a firewall rule to redirect 25 to 8025 and 143 to 8143 ... but 
>>>>>>>> I have to figure
>>>>>>>> that out
>>>>>>>> - maybe rethink about sendmail nullclient and do similar with 
>>>>>>>> postfix or exim
>>>>>>>> - maybe redo the mailet redirect for local-service and php-mail
>>>>>>>> - setting up DKIM on outgoing mails
>>>>>>>>
>>>>>>>> Currently I have James running on two servers: my main root as 
>>>>>>>> primary and on
>>>>>>>> a small sbc at home as a backup. Is there a way to synchronize 
>>>>>>>> the two servers
>>>>>>>> on the application level. Or would it be enough to just 
>>>>>>>> synchronize the two
>>>>>>>> datases secured by a ssh tunnel? How to handle the differences 
>>>>>>>> in the counters
>>>>>>>> when both servers receive an e-mail each which have to get 
>>>>>>>> synchronized in
>>>>>>>> both ways?
>>>>>>>>
>>>>>>>> Have a nice week.
>>>>>>>> Greetings from Germany
>>>>>>>>
>>>>>>>> Matt
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --------------------------------------------------------------------- 
>>>>>>>>
>>>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --------------------------------------------------------------------- 
>>>>>>>
>>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>
>>>>>>
>>>>>> --------------------------------------------------------------------- 
>>>>>>
>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>> For additional commands, e-mail: [email protected]
>>>>>>
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>