Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat: allow copying messages to another folder (for shared IMAP mailboxes)

Open
#13,822 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
55/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
javascript, php

Research direction

Start by reading MessageMapper::move() and trace the existing Move to… modal and message/thread action menu; the issue does not name their file paths or tests. Check how the current drag-and-drop and move flows call the backend before assessing the proposed copy action. Done means messages can be copied to another mailbox through the agreed UI flows while the source remains unchanged; the UI flow still needs agreement.

Written by the indexing model from the issue text.

Description

Is your feature request related to a problem? Please describe.

In setups with shared IMAP folders/mailboxes (e.g. project folders, team archives, or ACL namespaces), we frequently need to make an email from a personal inbox available in a shared folder for the team, while keeping the original in the personal inbox for our own reference.

Currently, Nextcloud Mail only allows moving messages (via drag-and-drop or "Move to..."). Moving removes the message from the personal mailbox, forcing us to lose the personal copy or manually re-send/forward it.

Describe the solution you'd like

Allow copying messages between mailboxes:

  1. Drag & drop: Support holding a modifier key (like Shift or Ctrl) while dragging to copy instead of move, matching the behavior in Roundcube and desktop clients like Thunderbird.
  2. Context menu: Add a "Copy to…" entry alongside the existing "Move to…" modal in the message/thread action menu.
Describe alternatives you've considered
  • Tags / Labels: Doesn't work for shared mailboxes. IMAP tags/keywords set on a message in a personal inbox aren't visible to team members who only have access to the shared folder. The message physically needs to exist in the shared mailbox.
  • Moving the message: Loses the email in the personal inbox, breaking personal follow-up.
  • Forwarding: Changes the headers (From, Date, Message-ID), pollutes SMTP traffic, and breaks conversation threading.
Additional context
  • Backend: IMAP supports this natively via COPY (RFC 3501). In Nextcloud Mail, MessageMapper::move() already calls Horde's $client->copy() with 'move' => true. A copy action would essentially call the same without the move flag and without dispatching MessageDeletedEvent on the source.
  • I'd be happy to prepare a PR for this once there is agreement on the UI flow.
Dominant language
JavaScript
Stars
1k
Forks
363
Avg merge
2d 5h
Merged PRs (30d)
88

Getting set up

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.

More from nextcloud/mail

All issues in nextcloud/mail

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.