nextcloud / nextcloud/mail

Improvement: Reduce IMAP data transfers.

Open
#6,679 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop bug performance 🚀
Dominant language
JavaScript
Stars
1k
Forks
348
Avg merge
12h 28m
Merged PRs (30d)
91

Description

Steps to reproduce
  1. Add an IMAP email account.
  2. Monitor transfer bytes on the IMAP server.

I have a personal mail server setup on GCP running IMAP. The total size of emails is around 400M and number or emails 5-7K.
I monitored the email server and noticed that every hour around 19~20MB of data is read from the mail server by the nextcloud server(running on different machine). When I unconfigured the email settings/app on the nextcloud server the data transfers did not happen anymore.

I did not check how frequently the email app syncs the mails though.

This is an issue because the personal email server is running in a cloud VM and the provider charges for data egress.
Not sure if this is related to the IMAP protocol metadata or too frequent syncs.

Expected behavior
  • Less data transfer from the email server.
  • Maybe expose tunables to limit the sync intervals in conf file or the GUI
Actual behavior

19-20MB per hours for a small email server setup.

Mail app version

1.12.0

Mailserver or service

personal mail server with dovecot for IMAP.

Operating system

ubuntu for raspberry pi.

PHP engine version

PHP 7.4

Web server

Apache (supported)

Database

MariaDB

Additional info

NA

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No implementation file, entry point, or test is identified. Start by reproducing the hourly IMAP transfer with the reported Dovecot setup and determine whether metadata polling or sync frequency causes it; done means reducing unnecessary transfers and defining any sync-interval tuning behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.