Page MenuHomePhorge

[DRAFT] Direct IMAP backend

Authored by machniak on Aug 16 2022, 3:10 PM.
Referenced Files
Unknown Object (File)
Tue, Nov 21, 3:09 AM
Unknown Object (File)
Thu, Nov 16, 5:48 PM
Unknown Object (File)
Mon, Nov 13, 2:35 PM
Unknown Object (File)
Mon, Nov 13, 4:58 AM
Unknown Object (File)
Wed, Nov 8, 8:07 AM
Unknown Object (File)
Tue, Nov 7, 12:30 PM
Unknown Object (File)
Tue, Nov 7, 11:49 AM
Unknown Object (File)
Mon, Nov 6, 8:56 PM
Restricted Project



Direct IMAP management - kolabd replacement

Test Plan


Diff Detail

rK kolab
Lint Not Applicable
Tests Not Applicable

Event Timeline

machniak created this revision.
  • Fix test regressions
  • More tests and unification
  • Add more job:* commands
  • ACL handling
  • Merge branch 'master' into dev/direct-imap-backend
  • Remove Roundcube user record on user delete
  • Add an option to disable LDAP backend
mollekopf subscribed.

Optional IMAP backend, pass tests with imap backend disabled, fixed IMAP::verifyAccount.

verifyAccount does not throw an exception for me (perhaps because of the httpform auth I'm using).
I ran into issues with just listing all folders because some shared folders shared with anyone were still returned.
Just listing the INBOX also seems less fragile.


We throw exceptions on imap errors because worker will handle this as a job failure and try again. If we just return false the job is not retried.

That being said... verifyAccount() (and VerifyJob) is not used anymore in this branch. With app.with_imap introduction we should call IMAP::verifyAccount() (not the job, the job could be removed later) from the CreateJob for "app.with_imap is disabled" case.


This line was important to be there. If the exception below is thrown the status update wouldn't happen, and we don't want that.


It should be app.with_imap here.


verifyAccount is currently primarily used in the tests, so let's throw in the job if necessary I propose.
The src/app/Jobs/User/CreateJob.php also before didn't call verifyAccount, so I'm not sure where that should happen?

mollekopf unsubscribed.

Addressed 2 out of 3 comments


It was invoked from the observer$69

With this whole refactor I propose to call IMAP::verifyAccount() from the CreateJob.

Call IMAP::verifyAccount from the create job

This revision is now accepted and ready to land.Oct 19 2022, 12:08 PM
This revision was landed with ongoing or failed builds.Oct 20 2022, 11:56 AM
Closed by commit rKbb9264e33104: Direct IMAP backend (authored by machniak, committed by mollekopf). · Explain Why
This revision was automatically updated to reflect the committed changes.