2022-09-14T15:52:05Z
=> Squirrelmail is an old webmail.
"Old" since it looks old.
Actually, it doesn't even require javascript.
And that's fine to me, I'm self-hosting and only need a webmail access for friends who don't configure a mail client.
It is a very simple software, light and easy to set up compared to big alternatives.
No database, no mess.
Just PHP.
Good news, PHP-8 is supported.
So, I installed squirrelmail and it feels great.
=> This is how it looks with custom CSS.
mkdir /var/www/htdocs/webmail/ cd /var/www/htdocs/webmail ftp -o squirrelmail.tar.gz https://squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fsnapshots.squirrelmail.org%2Fsquirrelmail-20220914_0200-SVN.stable.tar.gz ftp -o locales.tar.gz https://squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fsnapshots.squirrelmail.org%2Fsquirrelmail-20220914_0200-SVN.locales.tar.gz for i in *.tar.gz; do tar xvzf $i; done mv squirrelmail.stable squirrelmail rm *.tar.gz cp -r squirrelmail.locales/locale/fr_FR squirrelmail/locale/ cp -r squirrelmail.locales/images/*fr_FR* squirrelmail/images/ cp -r squirrelmail.locales/help/fr_FR squirrelmail/help/ rm -r squirrelmail.locales mkdir -p {data,temp} chown -R www:daemon . chmod -R 750 . chmod 0730 data chmod 0730 temp
cd squirrelmail/config ./conf.pl
Have fun in Organization Preferences and Server Settings.
Defaults are fine if webmail is on the same machine that the mail server.
Just make sure in "General Options" to set :
1. Data Directory : ../data/ 2. Attachment Directory : ../temp/
I suppose here you already have a SSL certificate.
server "squirrelmail.host.tld" { listen on * port 80 no log location * { block return 301 "https://$SERVER_NAME$REQUEST_URI" } } server "squirrelmail.host.tld" { root "/htdocs/squirrelmail.host.tld/squirrelmail" connection max request body 36700160 directory index index.php listen on * tls port 443 hsts preload hsts subdomains tls { certificate "/etc/ssl/host.tld.crt" key "/etc/ssl/private/host.tld.key" ticket lifetime default } location "*.php*" { fastcgi socket "/run/php-fpm.sock" } location "/.well-known/acme-challenge/*" { root "/acme" request strip 2 } # block everything not listed in .htaccess location "README" { block } location "class" { block } location "config" { block } location "configure" { block } location "contrib" { block } location "data" { block } location "doc" { block } location "functions" { block } location "help" { block } location "include" { block } location "locale" { block } location "po" { block } }
=> subscribe to annouces to get important notices. This content has been proxied by September (ba2dc).Proxy Information
text/plain