diff options
author | Robin Jarry <robin@jarry.cc> | 2024-06-29 01:15:19 +0200 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2024-08-03 20:19:37 +0200 |
commit | 954c812d840030f3013ef06621dd537c8b14b23d (patch) | |
tree | e1a3a7a0119c246f8969a64691e69c9b7abc0bfe /lib | |
parent | cd92da0e893ab6741bb6d411434edbb03a570c7d (diff) | |
download | aerc-954c812d840030f3013ef06621dd537c8b14b23d.tar.gz |
reply: allow copying to current folder
Add a new copy-to-replied setting in accounts.conf to copy sent replies
to the same folder than their replied message.
Requested-by: Tristan Partin <tristan@partin.io>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Tristan Partin <tristan@partin.io>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/msgstore.go | 4 | ||||
-rw-r--r-- | lib/send/jmap.go | 3 | ||||
-rw-r--r-- | lib/send/sender.go | 3 |
3 files changed, 7 insertions, 3 deletions
diff --git a/lib/msgstore.go b/lib/msgstore.go index d5501a4c..c64f933d 100644 --- a/lib/msgstore.go +++ b/lib/msgstore.go @@ -18,6 +18,7 @@ import ( // Accesses to fields must be guarded by MessageStore.Lock/Unlock type MessageStore struct { sync.Mutex + Name string Deleted map[uint32]interface{} Messages map[uint32]*models.MessageInfo Sorting bool @@ -88,7 +89,7 @@ type MessageStore struct { const MagicUid = 0xFFFFFFFF -func NewMessageStore(worker *types.Worker, +func NewMessageStore(worker *types.Worker, name string, defaultSortCriteria []*types.SortCriterion, thread bool, clientThreads bool, clientThreadsDelay time.Duration, selectLast bool, threadBySubject bool, @@ -105,6 +106,7 @@ func NewMessageStore(worker *types.Worker, } return &MessageStore{ + Name: name, Deleted: make(map[uint32]interface{}), Messages: make(map[uint32]*models.MessageInfo), diff --git a/lib/send/jmap.go b/lib/send/jmap.go index 9682629e..5f679b43 100644 --- a/lib/send/jmap.go +++ b/lib/send/jmap.go @@ -11,12 +11,13 @@ import ( func newJmapSender( worker *types.Worker, from *mail.Address, rcpts []*mail.Address, + copyTo string, ) (io.WriteCloser, error) { var writer io.WriteCloser done := make(chan error) worker.PostAction( - &types.StartSendingMessage{From: from, Rcpts: rcpts}, + &types.StartSendingMessage{From: from, Rcpts: rcpts, CopyTo: copyTo}, func(msg types.WorkerMessage) { switch msg := msg.(type) { case *types.Done: diff --git a/lib/send/sender.go b/lib/send/sender.go index a1e03da5..87ca4745 100644 --- a/lib/send/sender.go +++ b/lib/send/sender.go @@ -16,6 +16,7 @@ import ( func NewSender( worker *types.Worker, uri *url.URL, domain string, from *mail.Address, rcpts []*mail.Address, + copyTo string, ) (io.WriteCloser, error) { protocol, auth, err := parseScheme(uri) if err != nil { @@ -26,7 +27,7 @@ func NewSender( case "smtp", "smtp+insecure", "smtps": return newSmtpSender(protocol, auth, uri, domain, from, rcpts) case "jmap": - return newJmapSender(worker, from, rcpts) + return newJmapSender(worker, from, rcpts, copyTo) case "": return newSendmailSender(uri, rcpts) default: |