18 lines
537 B
Go
18 lines
537 B
Go
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)
|
||
|
|
}
|