diff --git a/main.go b/main.go index 2d2a1f4a..9f47c0e7 100644 --- a/main.go +++ b/main.go @@ -4,6 +4,7 @@ import ( "context" "errors" _ "expvar" + "infini.sh/console/plugin/api/email" _ "time/tzdata" log "github.com/cihub/seelog" @@ -151,6 +152,13 @@ func main() { } return err }) + task1.RunWithinGroup("initialize_email_server", func(ctx context.Context) error { + err := email.InitEmailServer() + if err != nil { + log.Errorf("init email server error: %v", err) + } + return err + }) } if !global.Env().SetupRequired() { diff --git a/plugin/api/email/common/pipeline.go b/plugin/api/email/common/pipeline.go index 81fcf931..20d98b42 100644 --- a/plugin/api/email/common/pipeline.go +++ b/plugin/api/email/common/pipeline.go @@ -25,8 +25,7 @@ func RefreshEmailServer() error { return err } if len(result.Result) == 0 { - //todo delete email server config file - return nil + return StopEmailServer() } servers := make([]model.EmailServer,0, len(result.Result)) for _, row := range result.Result { @@ -44,13 +43,21 @@ func RefreshEmailServer() error { sendEmailCfgFile := path.Join(cfgDir, emailServerConfigFile) _, err = util.FilePutContent(sendEmailCfgFile, pipeCfgStr) return err - return nil } func StopEmailServer() error { cfgDir := global.Env().GetConfigDir() sendEmailCfgFile := path.Join(cfgDir, emailServerConfigFile) - return os.RemoveAll(sendEmailCfgFile) + if util.FilesExists(sendEmailCfgFile) { + return os.RemoveAll(sendEmailCfgFile) + } + return nil +} + +func CheckEmailPipelineExists() bool { + cfgDir := global.Env().GetConfigDir() + sendEmailCfgFile := path.Join(cfgDir, emailServerConfigFile) + return util.FilesExists(sendEmailCfgFile) }