Email / contacts / calendar solution

Hi,
I am looking for a self-hosted client/server based solution for email, contact and calendar. Mails should be pulled from different services like gmail, microsoft etc. Storage should be central on a server with the possibility to sync from the clients with Thunderbird.

Do you have a proposal to realize this?

Thanks

Comes pretty close.

2 Likes

Thanks for the proposal. Can you sync email form Thunderbird with Nextcloud. So far I know about calendar and contacts, but not email?

What exactly is your goal? Please, explain as detailed, as possible.

That’s what I run for myself. Got me away from google.

I want to have all my mails from different providers in one central location. This location should be on my hardware.
I do not want to read/write/manage my mails in a browser. Instead I want to do it in a client like Thunderbird. The clients should show the same content as the server.
I want to read/write/manage my mails from different laptop and desktop computers.
I looked into SOGo and mailcow, but they seem quite heavy.

I hope it is clearer now.

Indeed, it is.

When you have Nextcloud, you can install & configure this online mail client. Then, you have access to your mail from pretty much anywhere, assuming you have Nextcloud configured to be that available.

Yes, but as I understand only in a browser. There is no possibility to sync the mail from Nextcloud to a client like Thunderbird. Am I missing something?

Yes. IMAP mail does everything on the respective mail server. Everything is synced, anyway, as long as you are connected to the mail server, which is pretty much always the case.

But this does not meet this requirement:

Why?

Please, tell us what your goal is. What is the point of having “all mails from different providers […] on my hardware”?

Don’t expose mails to the provider longer than necessary.
Don’t pay extra for additional storage.

That’s pointless, as long as the provider sees them in the first place. Once seen, it can’t be unseen. It’s like a car crash.

From my experience, storage is very generous, nowaydays. Even if you get hundreds or thousands of e-mails, you, for example, should be fine with 500MB storage.

For your problem regarding privacy concerns, it would be much easier and better to change the mail provider.
I personally use the following one.

However, there are also alternatives, but I can’t speak for them, as this is the only one I use.

Maybe mailu?
https://mailu.io

Got to ask is this real or a college (uni) homework project ?

Don’t have a answer but looks very much like something I would have set my students to discover

It is real, but I am open to get results of your students.

Ok just checking
I am retired now and stopped teaching a while back, so sorry cannot set it as a project.
No longer up on this subject to a level to give you a workable answer
Bonne courage !

Best one I’ve found, including cloud storage, calendar, and vpn.

1 Like

Damn! I was going to give NextCloud another “spin”… I got it going about 5 years ago on my NAS but ended up going with ResilioSync and removed Nextcloud…

Just tried again (FreeNAS) and WHAT A GIGANTIC PILE of SHIT it is now, to get going! Last time it “click here, click there, install plugin and BANG!”… It was almost TOO EASY!

Now? It gives you some vague message about config.php and trusted domains - what a stinker!

Took me ages to figure that out. i.e. I gave up yesterday (Saturday) arvo / evening, just revisited this morning (Sunday).

Get past that - then I have to find the default password for admin user - get there, eventually.

Then I get “unspecified error” occurred please check log file. WHICH SHITTING LOG FILE? The logfile in the nextcloud config.php file, in the BSD Jail is :

/var/log/nextcloud/nextcloud.log

and it looks like UGLY gigantic strings of JSON (I can’t tell 'cause it looks garbled) - e.g. ( this is all one single frigging line, the last line (tail -1) :

{"reqId":"37FBp7LLiuwG6zxedNdo","level":3,"time":"2022-02-13T03:24:17+00:00","remoteAddr":"10.1.1.162","user":"ncadmin","app":"index","method":"GET","url":"/apps/dashboard/undefined/js/firstrunwizard-main.js","message":"An exception occurred while executing a query: SQLSTATE[HY001]: Memory allocation error: 1038 Out of sort memory, consider increasing server sort buffer size","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36","version":"22.1.1.2","exception":{"Exception":"Doctrine\\DBAL\\Exception\\DriverException","Message":"An exception occurred while executing a query: SQLSTATE[HY001]: Memory allocation error: 1038 Out of sort memory, consider increasing server sort buffer size","Code":1038,"Trace":[{"file":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1728,"function":"convert","class":"Doctrine\\DBAL\\Driver\\API\\MySQL\\ExceptionConverter","type":"->"},{"file":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1667,"function":"handleDriverException","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1040,"function":"convertExceptionDuringQuery","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/DB/Connection.php","line":231,"function":"executeQuery","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":210,"function":"executeQuery","class":"OC\\DB\\Connection","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":287,"function":"execute","class":"Doctrine\\DBAL\\Query\\QueryBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/vendor/artificial-owl/my-small-php-tools/lib/Db/Nextcloud/nc22/NC22ExtendedQueryBuilder.php","line":1340,"function":"execute","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/vendor/artificial-owl/my-small-php-tools/lib/Db/Nextcloud/nc22/NC22ExtendedQueryBuilder.php","line":1276,"function":"getRows","class":"ArtificialOwl\\MySmallPhpTools\\Db\\Nextcloud\\nc22\\NC22ExtendedQueryBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/lib/Db/ShareWrapperRequestBuilder.php","line":123,"function":"asItems","class":"ArtificialOwl\\MySmallPhpTools\\Db\\Nextcloud\\nc22\\NC22ExtendedQueryBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/lib/Db/ShareWrapperRequest.php","line":339,"function":"getItemsFromRequest","class":"OCA\\Circles\\Db\\ShareWrapperRequestBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/lib/Service/ShareWrapperService.php","line":180,"function":"getSharedWith","class":"OCA\\Circles\\Db\\ShareWrapperRequest","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/lib/ShareByCircleProvider.php","line":557,"function":"getSharedWith","class":"OCA\\Circles\\Service\\ShareWrapperService","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/Share20/Manager.php","line":1360,"function":"getSharedWith","class":"OCA\\Circles\\ShareByCircleProvider","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/files_sharing/lib/MountProvider.php","line":79,"function":"getSharedWith","class":"OC\\Share20\\Manager","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/Files/Config/MountProviderCollection.php","line":118,"function":"getMountsForUser","class":"OCA\\Files_Sharing\\MountProvider","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/Files/Filesystem.php","line":429,"function":"addMountForUser","class":"OC\\Files\\Config\\MountProviderCollection","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/Files/Filesystem.php","line":354,"function":"initMountPoints","class":"OC\\Files\\Filesystem","type":"::"},{"file":"/usr/local/www/nextcloud/lib/private/legacy/OC_Util.php","line":325,"function":"init","class":"OC\\Files\\Filesystem","type":"::"},{"file":"/usr/local/www/nextcloud/lib/base.php","line":1023,"function":"setupFS","class":"OC_Util","type":"::"},{"file":"/usr/local/www/nextcloud/index.php","line":36,"function":"handleRequest","class":"OC","type":"::"}],"File":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php","Line":114,"Previous":{"Exception":"Doctrine\\DBAL\\Driver\\PDO\\Exception","Message":"SQLSTATE[HY001]: Memory allocation error: 1038 Out of sort memory, consider increasing server sort buffer size","Code":1038,"Trace":[{"file":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php","line":84,"function":"new","class":"Doctrine\\DBAL\\Driver\\PDO\\Exception","type":"::"},{"file":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1030,"function":"execute","class":"Doctrine\\DBAL\\Driver\\PDO\\Statement","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/DB/Connection.php","line":231,"function":"executeQuery","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":210,"function":"executeQuery","class":"OC\\DB\\Connection","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":287,"function":"execute","class":"Doctrine\\DBAL\\Query\\QueryBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/vendor/artificial-owl/my-small-php-tools/lib/Db/Nextcloud/nc22/NC22ExtendedQueryBuilder.php","line":1340,"function":"execute","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/vendor/artificial-owl/my-small-php-tools/lib/Db/Nextcloud/nc22/NC22ExtendedQueryBuilder.php","line":1276,"function":"getRows","class":"ArtificialOwl\\MySmallPhpTools\\Db\\Nextcloud\\nc22\\NC22ExtendedQueryBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/lib/Db/ShareWrapperRequestBuilder.php","line":123,"function":"asItems","class":"ArtificialOwl\\MySmallPhpTools\\Db\\Nextcloud\\nc22\\NC22ExtendedQueryBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/lib/Db/ShareWrapperRequest.php","line":339,"function":"getItemsFromRequest","class":"OCA\\Circles\\Db\\ShareWrapperRequestBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/lib/Service/ShareWrapperService.php","line":180,"function":"getSharedWith","class":"OCA\\Circles\\Db\\ShareWrapperRequest","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/lib/ShareByCircleProvider.php","line":557,"function":"getSharedWith","class":"OCA\\Circles\\Service\\ShareWrapperService","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/Share20/Manager.php","line":1360,"function":"getSharedWith","class":"OCA\\Circles\\ShareByCircleProvider","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/files_sharing/lib/MountProvider.php","line":79,"function":"getSharedWith","class":"OC\\Share20\\Manager","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/Files/Config/MountProviderCollection.php","line":118,"function":"getMountsForUser","class":"OCA\\Files_Sharing\\MountProvider","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/Files/Filesystem.php","line":429,"function":"addMountForUser","class":"OC\\Files\\Config\\MountProviderCollection","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/Files/Filesystem.php","line":354,"function":"initMountPoints","class":"OC\\Files\\Filesystem","type":"::"},{"file":"/usr/local/www/nextcloud/lib/private/legacy/OC_Util.php","line":325,"function":"init","class":"OC\\Files\\Filesystem","type":"::"},{"file":"/usr/local/www/nextcloud/lib/base.php","line":1023,"function":"setupFS","class":"OC_Util","type":"::"},{"file":"/usr/local/www/nextcloud/index.php","line":36,"function":"handleRequest","class":"OC","type":"::"}],"File":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Exception.php","Line":26,"Previous":{"Exception":"PDOException","Message":"SQLSTATE[HY001]: Memory allocation error: 1038 Out of sort memory, consider increasing server sort buffer size","Code":"HY001","Trace":[{"file":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php","line":82,"function":"execute","class":"PDOStatement","type":"->"},{"file":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1030,"function":"execute","class":"Doctrine\\DBAL\\Driver\\PDO\\Statement","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/DB/Connection.php","line":231,"function":"executeQuery","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":210,"function":"executeQuery","class":"OC\\DB\\Connection","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":287,"function":"execute","class":"Doctrine\\DBAL\\Query\\QueryBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/vendor/artificial-owl/my-small-php-tools/lib/Db/Nextcloud/nc22/NC22ExtendedQueryBuilder.php","line":1340,"function":"execute","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/vendor/artificial-owl/my-small-php-tools/lib/Db/Nextcloud/nc22/NC22ExtendedQueryBuilder.php","line":1276,"function":"getRows","class":"ArtificialOwl\\MySmallPhpTools\\Db\\Nextcloud\\nc22\\NC22ExtendedQueryBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/lib/Db/ShareWrapperRequestBuilder.php","line":123,"function":"asItems","class":"ArtificialOwl\\MySmallPhpTools\\Db\\Nextcloud\\nc22\\NC22ExtendedQueryBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/lib/Db/ShareWrapperRequest.php","line":339,"function":"getItemsFromRequest","class":"OCA\\Circles\\Db\\ShareWrapperRequestBuilder","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/lib/Service/ShareWrapperService.php","line":180,"function":"getSharedWith","class":"OCA\\Circles\\Db\\ShareWrapperRequest","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/circles/lib/ShareByCircleProvider.php","line":557,"function":"getSharedWith","class":"OCA\\Circles\\Service\\ShareWrapperService","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/Share20/Manager.php","line":1360,"function":"getSharedWith","class":"OCA\\Circles\\ShareByCircleProvider","type":"->"},{"file":"/usr/local/www/nextcloud/apps-pkg/files_sharing/lib/MountProvider.php","line":79,"function":"getSharedWith","class":"OC\\Share20\\Manager","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/Files/Config/MountProviderCollection.php","line":118,"function":"getMountsForUser","class":"OCA\\Files_Sharing\\MountProvider","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/Files/Filesystem.php","line":429,"function":"addMountForUser","class":"OC\\Files\\Config\\MountProviderCollection","type":"->"},{"file":"/usr/local/www/nextcloud/lib/private/Files/Filesystem.php","line":354,"function":"initMountPoints","class":"OC\\Files\\Filesystem","type":"::"},{"file":"/usr/local/www/nextcloud/lib/private/legacy/OC_Util.php","line":325,"function":"init","class":"OC\\Files\\Filesystem","type":"::"},{"file":"/usr/local/www/nextcloud/lib/base.php","line":1023,"function":"setupFS","class":"OC_Util","type":"::"},{"file":"/usr/local/www/nextcloud/index.php","line":36,"function":"handleRequest","class":"OC","type":"::"}],"File":"/usr/local/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php","Line":82}},"CustomMessage":"--"}}

seriously - how can a human being be expected to debug crap like that??? The developer should be taken (quietly) down the back paddock and put out of our misery, with a quick, discrete, bullet…