Skip to content

feat: jmap support - part 2b - #12871

Open
SebastianKrupinski wants to merge 9 commits into
feat/jmap-2from
feat/jmap-2b
Open

feat: jmap support - part 2b#12871
SebastianKrupinski wants to merge 9 commits into
feat/jmap-2from
feat/jmap-2b

Conversation

@SebastianKrupinski

@SebastianKrupinski SebastianKrupinski commented May 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Testing

  • This PR coverts message sending ONLY

  • Basically every operation that interacts with a external Imap or Jmap server needs to be tested... Twice... once on a Imap account/server then on a Jmap account/server

Message Operations

  • Send Message

@SebastianKrupinski
SebastianKrupinski force-pushed the feat/jmap-2b branch 4 times, most recently from 4655ec5 to 6d90ed1 Compare May 4, 2026 23:02
@SebastianKrupinski SebastianKrupinski changed the title feat: jmap support - 2b feat: jmap support - part 2b May 5, 2026
@SebastianKrupinski
SebastianKrupinski force-pushed the feat/jmap-2 branch 3 times, most recently from 251b435 to 5b60e5c Compare May 5, 2026 00:49
@SebastianKrupinski SebastianKrupinski self-assigned this May 5, 2026
@github-project-automation github-project-automation Bot moved this to 🏗️ In progress in 💌 📅 👥 Groupware team May 5, 2026
@SebastianKrupinski
SebastianKrupinski force-pushed the feat/jmap-2b branch 2 times, most recently from 9a63ade to 8c758e3 Compare May 5, 2026 14:32
@SebastianKrupinski
SebastianKrupinski force-pushed the feat/jmap-2 branch 3 times, most recently from 24b1df0 to a64d2f8 Compare May 5, 2026 19:32
@SebastianKrupinski
SebastianKrupinski force-pushed the feat/jmap-2b branch 2 times, most recently from 8a87336 to bd44a04 Compare May 5, 2026 19:39
@SebastianKrupinski
SebastianKrupinski force-pushed the feat/jmap-2 branch 3 times, most recently from 17b0c71 to 5cf5507 Compare May 6, 2026 19:31

@odzhychko odzhychko left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cannot connect to a server. For some reason HTTP is used instead of HTTPS:

 php occ mail:account:diagnose -- 3
Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port).

Mail Account Connection Test
============================

 ---------------- ---------------------- 
  Account ID       3                     
  Email            ****@fastmail.com  
  Name             JmapAccountA          
  Protocol         jmap                  
  Authentication   password              
 ---------------- ---------------------- 

JMAP Test
---------

 ---------- ------------------------------------------- 
  Server     https://api.fastmail.com:443/jmap/session  
  Username   ****@fastmail.com                       
  Security   ssl                                        
 ---------- ------------------------------------------- 

 Opening JMAP session...

                                                                                                                        
 [ERROR] JMAP connection test failed: Request to http://api.fastmail.com:443/jmap/session failed with status 400 Bad Request
                                                                                                                        

@odzhychko

Copy link
Copy Markdown
Contributor

I cannot connect to a server. For some reason HTTP is used instead of HTTPS:

My bad. I used the a wrong configuration value ("ssl" instead of "yes")
See https://github.com/nextcloud/mail/pull/12711/changes#r3512730771

I will continue testing.

Comment thread lib/Service/JMAP/JmapOperationsService.php
Comment thread lib/Protocol/ProtocolFactory.php
Comment thread lib/JMAP/JmapTransmissionConnector.php
Comment thread lib/JMAP/JmapTransmissionConnector.php
@odzhychko

odzhychko commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

For now I tested

Mailbox operations (all work)
  • List / sync folders
    • IMAP
    • JMAP
  • Create in root folder
    • IMAP
    • JMAP
  • Create in another folder
    • IMAP
    • JMAP
  • Rename in root folder
    • IMAP
    • JMAP
  • Rename in another folder
    • IMAP
    • JMAP
  • Delete in root folder
    • IMAP
    • JMAP
  • Delete in another folder
    • IMAP
    • JMAP
  • Subscribe / unsubscribe
    • IMAP
    • JMAP
  • Empty / clear mailbox
    • IMAP
    • JMAP
Mailbox operations 1/2 (one issue)
  • List / sync messages
    • IMAP
    • JMAP
  • Fetch message
    • IMAP
    • JMAP
  • Download raw message (show source / .eml)
  • Download attachments
    • IMAP
    • JMAP
  • Search messages
    • IMAP
    • JMAP
  • Move message
    • IMAP
    • JMAP
  • Delete message
    • IMAP
    • JMAP
  • Flag message (read/unread, etc.)
    • IMAP
    • JMAP
  • Tag message (set/unset)
    • IMAP
    • JMAP

Some other issues, each as separate comment.

Later I plan to test

Mailbox operations 2/2 ()
  • Move thread
    • IMAP
    • JMAP
  • Delete thread
    • IMAP
    • JMAP
  • Quota (usage reported)
    • IMAP
    • JMAP
Console operations
  • mail:account:create — alias of mail:account:create-imap
  • mail:account:create-imap
  • mail:account:create-jmap
  • mail:account:debug
  • mail:account:delete
  • mail:account:diagnose — alias of mail:account:test
  • mail:account:export
  • mail:account:export-threads
  • mail:account:run-meta-estimator
  • mail:account:sync
  • mail:account:test
  • mail:account:train
  • mail:account:update
  • mail:clean-up
  • mail:predict-importance
  • mail:repair:system-autoresponders
  • mail:repair:tags
  • mail:tags:migration-jobs
  • mail:thread

@SebastianKrupinski

Copy link
Copy Markdown
Contributor Author

Amazing! Thank you @odzhychko

@odzhychko

odzhychko commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Results testing Mailbox operations 2/2

  • Move thread
    • For IMAP and JMAP: Clicking the action "move thread" only moves the latest mail to the new folder.
      Inconsistent with "delete thread".
      But the released version 5.10.7 has the same behavior for IMAP.
    • For IMAP and JMAP: dragging a mail (with thread view enabled) moves the whole thread to the new folder.
  • Delete thread
    • For IMAP and JMAP: Clicking the action "delete thread" moves the whole thread to trash.
  • Quota (usage reported)
    • IMAP: Quota is not shown for IMAP account.
      In the released version 5.10.7 the quota is shown for the same account.
    • JMAP: Quota is not shown for the JMAP account.
      Not sure, if the test mail server might not support it.
      @SebastianKrupinski I used the JMAP account you gave me.

@odzhychko

Copy link
Copy Markdown
Contributor

Results testing console operations

  • mail:account:create-imap and mail:account:create
  • mail:account:create-jmap
  • mail:account:delete
    • IMAP
    • JMAP
  • mail:account:test and alias mail:account:diagnose
    • IMAP
    • JMAP
  • mail:account:export
    • IMAP
    • JMAP
  • mail:account:export-threads
    • IMAP
    • JMAP
  • mail:account:sync
    • IMAP
    • JMAP
  • mail:account:test
    • IMAP
    • JMAP
  • mail:account:train
    • IMAP
    • JMAP
  • mail:account:update-imap and mail:account:update
  • mail:account:update-jmap
  • mail:clean-up
  • mail:repair:system-autoresponders
  • mail:repair:tags
    • IMAP
    • JMAP
  • mail:tags:migration-jobs
  • mail:account:debug
    • IMAP
    • JMAP
  • mail:thread
    • IMAP
    • JMAP
  • mail:account:run-meta-estimator
    • Reported as not defined.
      Same behavior as in v5.10.8 so probably not caused by JMAP changes.
  • mail:predict-importance
    • Reported as not defined.
      Same behavior as in v5.10.8 so probably not caused by JMAP changes.

@odzhychko

Copy link
Copy Markdown
Contributor

@SebastianKrupinski I finished the first round of testing 😄

@SebastianKrupinski

Copy link
Copy Markdown
Contributor Author

@SebastianKrupinski I finished the first round of testing 😄

Thank you so much!!! Totally appreciate it!!!

@SebastianKrupinski

Copy link
Copy Markdown
Contributor Author

I cannot connect to a server. For some reason HTTP is used instead of HTTPS:

My bad. I used the a wrong configuration value ("ssl" instead of "yes") See https://github.com/nextcloud/mail/pull/12711/changes#r3512730771

I will continue testing.

Fixed

@SebastianKrupinski

Copy link
Copy Markdown
Contributor Author

Hey @odzhychko

You can retest the sending it has been fixed.

I've also rebase to the most recent version of mail

Comment thread lib/Protocol/ProtocolFactory.php
Comment thread lib/Protocol/ProtocolFactory.php
@odzhychko

Copy link
Copy Markdown
Contributor

Ready with retesting the opened issues.

  • One I could reproduce anymore
  • One I could reproduce and added more details
  • Found two new issues

@SebastianKrupinski

Copy link
Copy Markdown
Contributor Author

Ready with retesting the opened issues.

* One I could reproduce anymore

* One I could reproduce and added more details

* Found two new issues

Okay, all these are fix/resolved, and changes pushed. I think that takes care of all the issues, you found

Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: 📄 To do

Development

Successfully merging this pull request may close these issues.

2 participants