Smail/server/services/setup/domain.go
Jinnrry 5af46b32f6
Feature/v2.8.0 (#231)
支持Imap协议
升级所有依赖
修复部分bug
2025-01-04 16:23:07 +08:00

55 lines
1.2 KiB
Go

package setup
import (
"github.com/Jinnrry/pmail/config"
"github.com/Jinnrry/pmail/utils/array"
"github.com/Jinnrry/pmail/utils/errors"
"strings"
)
func GetDomainSettings() (string, string, []string, error) {
configData, err := config.ReadConfig()
if err != nil {
return "", "", []string{}, errors.Wrap(err)
}
return configData.Domain, configData.WebDomain, array.Difference(configData.Domains, []string{configData.Domain}), nil
}
func SetDomainSettings(smtpDomain, webDomain, multiDomains string) error {
configData, err := config.ReadConfig()
if err != nil {
return errors.Wrap(err)
}
if smtpDomain == "" {
return errors.New("domain must not empty!")
}
if webDomain == "" {
return errors.New("web domain must not empty!")
}
configData.Domains = []string{}
if multiDomains != "" {
domains := strings.Split(multiDomains, ",")
configData.Domains = domains
}
if !array.InArray(smtpDomain, configData.Domains) {
configData.Domains = append(configData.Domains, smtpDomain)
}
configData.Domain = smtpDomain
configData.WebDomain = webDomain
// 检查域名是否指向本机 todo
err = config.WriteConfig(configData)
if err != nil {
return errors.Wrap(err)
}
return nil
}