init.go 823 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package res_init
  2. import (
  3. "os"
  4. "pmail/config"
  5. "pmail/db"
  6. "pmail/dto/parsemail"
  7. "pmail/hooks"
  8. "pmail/http_server"
  9. "pmail/session"
  10. "pmail/smtp_server"
  11. "pmail/utils/file"
  12. )
  13. func Init() {
  14. config.Init()
  15. if config.IsInit {
  16. parsemail.Init()
  17. db.Init()
  18. session.Init()
  19. hooks.Init()
  20. // smtp server start
  21. go smtp_server.Start()
  22. // http server start
  23. go http_server.Start()
  24. } else {
  25. dirInit()
  26. go http_server.SetupStart()
  27. }
  28. }
  29. func dirInit() {
  30. if !file.PathExist("./config") {
  31. err := os.MkdirAll("./config", 0744)
  32. if err != nil {
  33. panic(err)
  34. }
  35. }
  36. if !file.PathExist("./config/dkim") {
  37. err := os.MkdirAll("./config/dkim", 0744)
  38. if err != nil {
  39. panic(err)
  40. }
  41. }
  42. if !file.PathExist("./config/ssl") {
  43. err := os.MkdirAll("./config/ssl", 0744)
  44. if err != nil {
  45. panic(err)
  46. }
  47. }
  48. }