Smail/server/services/setup/domain.go
Jinnrry 054336fe9e
v2.6.1 (#169)
1、新增垃圾邮件过滤插件
2、使用使用github.com/dlclark/regexp2替换go原生的正则包
3、修复空数据导致的邮件插入失败
2024-07-20 10:39:17 +08:00

54 lines
1.1 KiB
Go

package setup
import (
"github.com/Jinnrry/pmail/utils/array"
"github.com/Jinnrry/pmail/utils/errors"
"strings"
)
func GetDomainSettings() (string, string, []string, error) {
configData, err := 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 := 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 = WriteConfig(configData)
if err != nil {
return errors.Wrap(err)
}
return nil
}