export.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/Jinnrry/pmail/config"
  5. "github.com/Jinnrry/pmail/db"
  6. "github.com/Jinnrry/pmail/hooks/spam_block/tools"
  7. "github.com/Jinnrry/pmail/models"
  8. "os"
  9. )
  10. func main() {
  11. config.Init()
  12. err := db.Init("test")
  13. if err != nil {
  14. panic(err)
  15. }
  16. fmt.Println(config.Instance.DbDSN)
  17. fmt.Println("文件第一列是分类,0表示正常邮件,1表示垃圾邮件,2表示诈骗邮件")
  18. var start int
  19. file, err := os.OpenFile("data.csv", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0777)
  20. if err != nil {
  21. fmt.Println(err)
  22. }
  23. defer file.Close()
  24. for {
  25. var emails []models.Email
  26. db.Instance.Table(&models.Email{}).Where("id > ?", start).OrderBy("id").Find(&emails)
  27. if len(emails) == 0 {
  28. break
  29. }
  30. for _, email := range emails {
  31. start = email.Id
  32. _, err = file.WriteString(fmt.Sprintf("0 \t%s %s\n", email.Subject, tools.Trim(tools.TrimHtml(email.Html.String))))
  33. if err != nil {
  34. fmt.Println(err)
  35. }
  36. //fmt.Printf("0 \t%s %s\n", email.Subject, trim(trimHtml(email.Html.String)))
  37. }
  38. }
  39. }