Files
mailgoserver/internal/mailstore/resolve.go
T

18 lines
537 B
Go
Raw Normal View History

2026-08-12 21:14:19 +01:00
package mailstore
import "mailgoserver/internal/db"
// ResolveRecipient looks up a local mailbox for addr — its primary email first, then
// any active alias — so mail sent to an alias lands in the owning mailbox's INBOX.
func (s *Store) ResolveRecipient(addr string) (*db.Mailbox, error) {
mbox, err := s.DB.GetMailboxByEmail(addr)
if err != nil || mbox != nil {
return mbox, err
}
alias, err := s.DB.GetAliasByEmail(addr)
if err != nil || alias == nil {
return nil, err
}
return s.DB.GetMailboxByID(alias.MailboxID)
}