mirror of
https://github.com/Jinnrry/PMail.git
synced 2026-04-23 00:17:16 +08:00
e194d6ecfd
1.优化垃圾邮件处理 2.升级所有依赖,go版本升级到1.24
65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/Jinnrry/pmail/config"
|
|
"github.com/Jinnrry/pmail/db"
|
|
"github.com/Jinnrry/pmail/hooks/spam_block/tools"
|
|
"github.com/Jinnrry/pmail/models"
|
|
"github.com/spf13/cast"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
args := os.Args
|
|
|
|
var id int
|
|
if len(args) >= 2 {
|
|
id = cast.ToInt(args[1])
|
|
}
|
|
|
|
config.Init()
|
|
err := db.Init("test")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
fmt.Println(config.Instance.DbDSN)
|
|
|
|
fmt.Println("文件第一列是分类,0表示正常邮件,1表示垃圾邮件,2表示诈骗邮件")
|
|
|
|
var start int
|
|
file, err := os.OpenFile("data.csv", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0777)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
defer file.Close()
|
|
for {
|
|
var emails []models.Email
|
|
if id > 0 {
|
|
db.Instance.Table(&models.Email{}).Where("id = ?", id).OrderBy("id").Find(&emails)
|
|
} else {
|
|
db.Instance.Table(&models.Email{}).Where("id > ?", start).OrderBy("id").Find(&emails)
|
|
}
|
|
if len(emails) == 0 {
|
|
break
|
|
}
|
|
for _, email := range emails {
|
|
start = email.Id
|
|
content := tools.Trim(tools.TrimHtml(email.Html.String))
|
|
if content == "" {
|
|
content = tools.Trim(email.Text.String)
|
|
}
|
|
_, err = file.WriteString(fmt.Sprintf("0 \t%s %s\n", email.Subject, content))
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
//fmt.Printf("0 \t%s %s\n", email.Subject, trim(trimHtml(email.Html.String)))
|
|
}
|
|
if id > 0 {
|
|
break
|
|
}
|
|
|
|
}
|
|
|
|
}
|