TF-3674 Add ADR for logic reply email
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# 52. Patrol integration test
|
||||
# 53. Patrol integration test
|
||||
|
||||
Date: 2024-04-10
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# 53. Standardize HTML sanitizing
|
||||
# 54. Standardize HTML sanitizing
|
||||
|
||||
Date: 2024-10-24
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# 53. Web socket data synchronization
|
||||
# 55. Web socket data synchronization
|
||||
|
||||
Date: 2024-11-10
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# 54. Update Flutter Service Worker Initialization
|
||||
# 56. Update Flutter Service Worker Initialization
|
||||
|
||||
Date: 2024-11-15
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 55. iOS FCM routing
|
||||
# 57. iOS FCM routing
|
||||
|
||||
Date: 2024-12-05
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# 55. Remove Flutter Service Worker
|
||||
# 58. Remove Flutter Service Worker
|
||||
|
||||
Date: 2024-11-26
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# 56. Web Socket Ping Strategy
|
||||
# 59. Web Socket Ping Strategy
|
||||
|
||||
Date: 2024-12-16
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 57. Team Mailboxes Matching
|
||||
# 60. Team Mailboxes Matching
|
||||
|
||||
Date: 2025-02-18
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# 58. Fix iOS email view gone blank with large HTML content
|
||||
# 61. Fix iOS email view gone blank with large HTML content
|
||||
|
||||
Date: 2024-04-05
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# 58. Fix offline cache prevents updating email query view on mobile
|
||||
# 62. Fix offline cache prevents updating email query view on mobile
|
||||
|
||||
Date: 2025-04-03
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# 58. Hide session expires dialog to avoid confusing users
|
||||
# 63. Hide session expires dialog to avoid confusing users
|
||||
|
||||
Date: 2025-04-14
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 59. Reply to own sent email
|
||||
# 64. Reply to own sent email
|
||||
|
||||
Date: 2025-04-15
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
# 65. Logic for reply email
|
||||
|
||||
Date: 2025-04-21
|
||||
|
||||
## Status
|
||||
|
||||
Accepted
|
||||
|
||||
## Context
|
||||
|
||||
- The email reply logic is quite complex so to avoid mistakes and regression of errors later.
|
||||
|
||||
## Decision
|
||||
|
||||
Brief the logic flow to easily follow changes during email reply process:
|
||||
|
||||
**1. Reply:**
|
||||
|
||||
- If the user is the `sender`
|
||||
|
||||
```console
|
||||
To = email.to
|
||||
Cc, Bcc, ReplyTo = Empty
|
||||
```
|
||||
|
||||
- Otherwise, If the email has a `List-Post` header then:
|
||||
|
||||
```console
|
||||
To = email.from.withoutUser
|
||||
Cc, Bcc, ReplyTo = Empty
|
||||
```
|
||||
|
||||
- Otherwise, If the email without a `List-Post` header, `email.replyTo` is not empty then:
|
||||
|
||||
```console
|
||||
To = email.replyTo.withoutUser
|
||||
Cc, Bcc, ReplyTo = Empty
|
||||
```
|
||||
|
||||
- Otherwise:
|
||||
|
||||
```console
|
||||
To = email.from.withoutUser
|
||||
Cc, Bcc, ReplyTo = Empty
|
||||
```
|
||||
|
||||
**2. Reply To List:**
|
||||
|
||||
- If the email has a `List-Post` header then:
|
||||
|
||||
```console
|
||||
To = email.List-Post.withoutUser
|
||||
Cc, Bcc, ReplyTo = Empty
|
||||
```
|
||||
|
||||
- Otherwise: There is no `Reply To List` feature
|
||||
|
||||
3. Reply all
|
||||
|
||||
- If the user is the sender
|
||||
|
||||
```console
|
||||
To = email.to.withoutUser
|
||||
Cc = email.cc.withoutUser
|
||||
Bcc = email.bcc.withoutUser
|
||||
ReplyTo = email.replyTo.withoutUser
|
||||
```
|
||||
|
||||
- Otherwise, If the email has a `List-Post` header then:
|
||||
|
||||
```console
|
||||
To = (email.replyTo + email.from + email.to).withoutUser
|
||||
Cc = email.cc.withoutUser
|
||||
Bcc = email.bcc.withoutUser
|
||||
ReplyTo = Empty
|
||||
```
|
||||
|
||||
- Otherwise, If the email without a `List-Post` header, `email.replyTo` is not empty then:
|
||||
|
||||
```console
|
||||
To = (email.replyTo + email.to).withoutUser
|
||||
Cc = email.cc.withoutUser
|
||||
Bcc = email.bcc.withoutUser
|
||||
ReplyTo = Empty
|
||||
```
|
||||
|
||||
- Otherwise
|
||||
|
||||
```console
|
||||
To = (email.from + email.to).withoutUser
|
||||
Cc = email.cc.withoutUser
|
||||
Bcc = email.bcc.withoutUser
|
||||
ReplyTo = Empty
|
||||
```
|
||||
|
||||
## Consequences
|
||||
|
||||
- Any changes to reply email should be updated in this ADR.
|
||||
Reference in New Issue
Block a user