Send attachments

- Compose gains an "Attach file" picker (OpenMultipleDocuments) and shows each pick as
  a removable chip; OutgoingMessage carries the picked URIs.
- On send the repository copies the picked files into the outbox message's own cache
  directory; SendWorker passes them to SmtpSender, which builds a multipart message
  (text body + a part per file via attachFile). Files are cleaned up on success/cancel.
- assemble/test/lint green, including a new SmtpSender test that sends an attachment and
  asserts GreenMail received a multipart message containing it; the compose "Attach file"
  affordance verified on the Android 17 emulator.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-27 16:54:39 -05:00
co-authored by Claude Opus 4.8
parent 5c98f3ba1c
commit f65226a4d2
9 changed files with 161 additions and 7 deletions
+2
View File
@@ -40,6 +40,8 @@
<string name="compose_subject">Subject</string>
<string name="compose_body">Message</string>
<string name="compose_no_account">Add an account before composing</string>
<string name="compose_attach">Attach file</string>
<string name="compose_attachment_remove">Remove attachment</string>
<!-- Drafts -->
<string name="drafts_title">Drafts</string>