mirror of
https://github.com/directorz/mailfull-go.git
synced 2026-01-07 19:57:10 +00:00
Moved functions
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
package mailfull
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// CatchAllUser represents a CatchAllUser.
|
||||
type CatchAllUser struct {
|
||||
name string
|
||||
@@ -22,3 +28,39 @@ func NewCatchAllUser(name string) (*CatchAllUser, error) {
|
||||
func (cu *CatchAllUser) Name() string {
|
||||
return cu.name
|
||||
}
|
||||
|
||||
// CatchAllUser returns a CatchAllUser that the input name has.
|
||||
func (r *Repository) CatchAllUser(domainName string) (*CatchAllUser, error) {
|
||||
domain, err := r.Domain(domainName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if domain == nil {
|
||||
return nil, ErrDomainNotExist
|
||||
}
|
||||
|
||||
file, err := os.Open(filepath.Join(r.DirMailDataPath, domainName, FileNameCatchAllUser))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
scanner := bufio.NewScanner(file)
|
||||
scanner.Scan()
|
||||
|
||||
name := scanner.Text()
|
||||
|
||||
if err := scanner.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if name == "" {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
catchAllUser, err := NewCatchAllUser(name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return catchAllUser, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user