Adds new config vars for incoming & outgoing attachment sizes, validated at draft stage
and when receiving emails.
---------
Co-authored-by: Riël Notermans <riel@mosa.cloud>
Scalingo one-offs use a different hostname every time group only by paths and not by hosts,paths
Also, add the --prune option to actually delete data and not just indices.
The has_object_permission method was failing with MultipleObjectsReturned
exception when a user had access to multiple mailboxes that both have
access to the same thread.
Changes:
- Filter thread accesses by EDITOR role and check user mailbox permissions
- Use filter().exists() instead of get() to avoid MultipleObjectsReturned
- Add test case to verify users can send messages when they have access
to multiple mailboxes on the same thread
Bind the selected mailbox email into the import modal title. As we can
now import emails for each mailbox at the same time, it can be useful
to display the related mailbox for which import is ongoing.
Currently when we store a task import id globally. So once the user has
launched one import he is not able to start a new import from another
mailbox. Furthermore, currently the storage never expires that is weird.
Now after 48hours, if the task is still pending we consider it as stale.
The SECURE_REDIRECT_EXEMPT setting was missing the inbound MTA router
endpoints, causing internal HTTP calls from the MTA-in service to be
redirected to HTTPS with a 301 response.
This caused the milter to timeout when checking recipients and
delivering mail, resulting in "451 4.7.1 Service unavailable" errors.
The MTA-in service calls:
- /api/v1.0/inbound/mta/check/ (for recipient validation)
- /api/v1.0/inbound/mta/deliver/ (for mail delivery)
These internal endpoints must accept HTTP requests and should not
be redirected to HTTPS.
Changed:
- Added "^api/v1\.0/inbound/mta/" to SECURE_REDIRECT_EXEMPT
This follows the existing pattern for the alias endpoints at
/api/v1.0/mta/* which were already exempted.
Fixes: MTA milter timeout and mail delivery failures
Rework the thread view component to greatly improve layout and usability.
- Remove the message subject and put ahead the sender identity instead
- Collapse read messages by default
- On thread opening, scroll to the most relevant message (last unread,
with draft or the default)
- Smoothly scroll to the message composer when the user open the reply form
- Fix several bugs found on the road
Currently threads are hard to read mainly because embedded
replies and other kind of messages are not collapsed like other
mail application does. So we implement a logic to detect empirically
those kind of message and wrap them into a details element.
We recently display recipient delivery status tooltip when the message is not
yet delivered or in failure. To help user to understand why the message is not
delivered, we now display the delivery message if there is one.
- Updated Message API to return MessageRecipient instead of Contact
- In ThreadMessage component displays icon next to a recipient to display
delivered status (only if the message is not delivered yet)
- Added multipart upload capabilities for EML and MBOX files to the
message imports bucket.
- Introduced new API endpoints for initiating uploads, completing
uploads, and aborting uploads.
- Updated serializers and viewsets to handle file uploads efficiently.
- Improved frontend components to display upload progress and handle
file uploads seamlessly.
- Adjusted backend services to process uploaded files asynchronously,
ensuring better performance and user experience.
- Updated documentation and tests to reflect the new functionality.