From f192c8650055fab617c76f6df376f30216bb405e Mon Sep 17 00:00:00 2001 From: jinnrry Date: Mon, 4 Mar 2024 20:36:50 +0800 Subject: [PATCH 01/11] fix --- .github/workflows/docker_build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index 15b29d8..0f516d6 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -51,6 +51,7 @@ jobs: - name: Build and push Docker images uses: docker/build-push-action@v4 with: + build-args: VERSION=${{ env.VERSION }} context: . file: ./DockerfileGithubAction platforms: | From 4b06ddbd29221e7c71a096b604a1779daebc57a1 Mon Sep 17 00:00:00 2001 From: jinnrry Date: Mon, 4 Mar 2024 20:42:24 +0800 Subject: [PATCH 02/11] fix --- server/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/main.go b/server/main.go index a6ce37f..f905477 100644 --- a/server/main.go +++ b/server/main.go @@ -75,7 +75,7 @@ func main() { } if version == "" { - version = time.Now().Format("2006-01-02 15:04:05") + version = "TestVersion" } log.Infoln("***************************************************") From 8a3ee3808f11b5d8cebac2e7ccf6484131774644 Mon Sep 17 00:00:00 2001 From: jinnrry Date: Mon, 4 Mar 2024 20:49:19 +0800 Subject: [PATCH 03/11] fix --- .github/workflows/docker_build.yml | 5 ++++- .github/workflows/docker_build_pre.yml | 5 ++++- DockerfileGithubAction | 3 ++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index 0f516d6..d586b0c 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -22,6 +22,7 @@ jobs: echo "${GITHUB_REF/refs\/tags\//}" echo "${GITHUB_REF#refs/*/}" echo "${GITHUB_REF}" + echo "GITHASH=${git show -s --format=%H}" >> ${GITHASH} - uses: actions/checkout@v3 - name: set lower case repository name @@ -51,7 +52,9 @@ jobs: - name: Build and push Docker images uses: docker/build-push-action@v4 with: - build-args: VERSION=${{ env.VERSION }} + build-args: | + VERSION=${{ env.VERSION }} + GITHASH=${{ env.GITHASH }} context: . file: ./DockerfileGithubAction platforms: | diff --git a/.github/workflows/docker_build_pre.yml b/.github/workflows/docker_build_pre.yml index 21799d5..bdf752e 100644 --- a/.github/workflows/docker_build_pre.yml +++ b/.github/workflows/docker_build_pre.yml @@ -22,6 +22,7 @@ jobs: echo "${GITHUB_REF/refs\/tags\//}" echo "${GITHUB_REF#refs/*/}" echo "${GITHUB_REF}" + echo "GITHASH=${git show -s --format=%H}" >> ${GITHASH} - uses: actions/checkout@v3 - name: set lower case repository name @@ -51,7 +52,9 @@ jobs: - name: Build and push Docker images uses: docker/build-push-action@v4 with: - build-args: VERSION=${{ env.VERSION }} + build-args: | + VERSION=${{ env.VERSION }} + GITHASH=${{ env.GITHASH }} context: . file: ./DockerfileGithubAction platforms: | diff --git a/DockerfileGithubAction b/DockerfileGithubAction index 3150d01..ef08d69 100644 --- a/DockerfileGithubAction +++ b/DockerfileGithubAction @@ -1,11 +1,12 @@ FROM golang:alpine as serverbuild ARG VERSION +ARG GITHASH WORKDIR /work COPY server . RUN apk update && apk add git -RUN go build -ldflags "-s -w -X 'main.version=${VERSION}' -X 'main.goVersion=$(go version)' -X 'main.gitHash=$(git show -s --format=%H)' -X 'main.buildTime=$(TZ=UTC-8 date +%Y-%m-%d" "%H:%M:%S)'" -o pmail main.go +RUN go build -ldflags "-s -w -X 'main.version=${VERSION}' -X 'main.goVersion=$(go version)' -X 'main.gitHash=${GITHASH}' -X 'main.buildTime=$(TZ=UTC-8 date +%Y-%m-%d" "%H:%M:%S)'" -o pmail main.go RUN cd /work/hooks/telegram_push && go build -ldflags "-s -w" -o output/telegram_push telegram_push.go RUN cd /work/hooks/web_push && go build -ldflags "-s -w" -o output/web_push web_push.go RUN cd /work/hooks/wechat_push && go build -ldflags "-s -w" -o output/wechat_push wechat_push.go From 5e95a0dc1ac995bf735b5b6989f94f6afd5124ee Mon Sep 17 00:00:00 2001 From: jinnrry Date: Mon, 4 Mar 2024 20:51:45 +0800 Subject: [PATCH 04/11] fix --- .github/workflows/docker_build.yml | 2 +- .github/workflows/docker_build_pre.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index d586b0c..b1c13dc 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -22,7 +22,7 @@ jobs: echo "${GITHUB_REF/refs\/tags\//}" echo "${GITHUB_REF#refs/*/}" echo "${GITHUB_REF}" - echo "GITHASH=${git show -s --format=%H}" >> ${GITHASH} + echo "GITHASH=$(git show -s --format=%H)" >> ${GITHASH} - uses: actions/checkout@v3 - name: set lower case repository name diff --git a/.github/workflows/docker_build_pre.yml b/.github/workflows/docker_build_pre.yml index bdf752e..54d0dbf 100644 --- a/.github/workflows/docker_build_pre.yml +++ b/.github/workflows/docker_build_pre.yml @@ -22,7 +22,7 @@ jobs: echo "${GITHUB_REF/refs\/tags\//}" echo "${GITHUB_REF#refs/*/}" echo "${GITHUB_REF}" - echo "GITHASH=${git show -s --format=%H}" >> ${GITHASH} + echo "GITHASH=$(git show -s --format=%H)" >> ${GITHASH} - uses: actions/checkout@v3 - name: set lower case repository name From 52e460e00b58f4cd28523b90fac4159f276ebd70 Mon Sep 17 00:00:00 2001 From: jinnrry Date: Mon, 4 Mar 2024 20:54:19 +0800 Subject: [PATCH 05/11] fix --- .github/workflows/docker_build.yml | 5 +++-- .github/workflows/docker_build_pre.yml | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index b1c13dc..d33af58 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -22,7 +22,6 @@ jobs: echo "${GITHUB_REF/refs\/tags\//}" echo "${GITHUB_REF#refs/*/}" echo "${GITHUB_REF}" - echo "GITHASH=$(git show -s --format=%H)" >> ${GITHASH} - uses: actions/checkout@v3 - name: set lower case repository name @@ -40,7 +39,9 @@ jobs: - uses: actions/setup-node@v4 - name: Build FE - run: make build_fe + run: | + echo "GITHASH=$(git show -s --format=%H)" >> ${GITHASH} + make build_fe - name: Log in to the Container registry uses: docker/login-action@v2.1.0 diff --git a/.github/workflows/docker_build_pre.yml b/.github/workflows/docker_build_pre.yml index 54d0dbf..7a9d9b8 100644 --- a/.github/workflows/docker_build_pre.yml +++ b/.github/workflows/docker_build_pre.yml @@ -22,7 +22,6 @@ jobs: echo "${GITHUB_REF/refs\/tags\//}" echo "${GITHUB_REF#refs/*/}" echo "${GITHUB_REF}" - echo "GITHASH=$(git show -s --format=%H)" >> ${GITHASH} - uses: actions/checkout@v3 - name: set lower case repository name @@ -40,7 +39,9 @@ jobs: - uses: actions/setup-node@v4 - name: Build FE - run: make build_fe + run: | + echo "GITHASH=$(git show -s --format=%H)" >> ${GITHASH} + make build_fe - name: Log in to the Container registry uses: docker/login-action@v2.1.0 From 440ed7a2d04f68ba43ecb52df40c97af22dfce0e Mon Sep 17 00:00:00 2001 From: jinnrry Date: Mon, 4 Mar 2024 20:56:46 +0800 Subject: [PATCH 06/11] fix --- .github/workflows/docker_build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index d33af58..913925f 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -40,6 +40,7 @@ jobs: - name: Build FE run: | + echo "$(git show -s --format=%H)" echo "GITHASH=$(git show -s --format=%H)" >> ${GITHASH} make build_fe From 28bae5063057d506d5b12583a9c080018fb15962 Mon Sep 17 00:00:00 2001 From: jinnrry Date: Mon, 4 Mar 2024 20:57:49 +0800 Subject: [PATCH 07/11] fix --- .github/workflows/docker_build.yml | 2 +- .github/workflows/docker_build_pre.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index 913925f..5dce102 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -41,7 +41,7 @@ jobs: - name: Build FE run: | echo "$(git show -s --format=%H)" - echo "GITHASH=$(git show -s --format=%H)" >> ${GITHASH} + echo "GITHASH=$(git show -s --format=%H)" >> ${GITHUB_ENV} make build_fe - name: Log in to the Container registry diff --git a/.github/workflows/docker_build_pre.yml b/.github/workflows/docker_build_pre.yml index 7a9d9b8..a4ac05c 100644 --- a/.github/workflows/docker_build_pre.yml +++ b/.github/workflows/docker_build_pre.yml @@ -40,7 +40,7 @@ jobs: - name: Build FE run: | - echo "GITHASH=$(git show -s --format=%H)" >> ${GITHASH} + echo "GITHASH=$(git show -s --format=%H)" >> ${GITHUB_ENV} make build_fe - name: Log in to the Container registry From 5f26d2b18e641ccdae0d44a3d101df164e1971d6 Mon Sep 17 00:00:00 2001 From: jinnrry Date: Tue, 5 Mar 2024 10:30:38 +0800 Subject: [PATCH 08/11] fix --- server/smtp_server/read_content.go | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/server/smtp_server/read_content.go b/server/smtp_server/read_content.go index d87524c..f86393d 100644 --- a/server/smtp_server/read_content.go +++ b/server/smtp_server/read_content.go @@ -64,6 +64,24 @@ func (s *Session) Data(r io.Reader) error { // 判断是收信还是转发,只要是登陆了,都当成转发处理 //account, domain := email.From.GetDomainAccount() if s.Ctx.UserID > 0 { + + log.WithContext(ctx).Debugf("开始执行插件SendBefore!") + as2 := async.New(ctx) + for _, hook := range hooks.HookList { + if hook == nil { + continue + } + as2.WaitProcess(func(hk any) { + hk.(framework.EmailHook).SendBefore(ctx, email) + }, hook) + } + as2.Wait() + log.WithContext(ctx).Debugf("开始执行插件SendBefore!End") + + if email == nil { + return nil + } + // 转发 err := saveEmail(ctx, email, 1, true, true) if err != nil { @@ -86,10 +104,7 @@ func (s *Session) Data(r io.Reader) error { SPFStatus = spfCheck(s.RemoteAddress.String(), email.Sender, email.Sender.EmailAddress) - saveEmail(ctx, email, 0, SPFStatus, dkimStatus) - log.WithContext(ctx).Debugf("开始执行插件ReceiveParseAfter!") - as2 := async.New(ctx) for _, hook := range hooks.HookList { if hook == nil { @@ -102,6 +117,12 @@ func (s *Session) Data(r io.Reader) error { as2.Wait() log.WithContext(ctx).Debugf("开始执行插件ReceiveParseAfter!End") + if email == nil { + return nil + } + + saveEmail(ctx, email, 0, SPFStatus, dkimStatus) + log.WithContext(ctx).Debugf("开始执行邮件规则!") // 执行邮件规则 rs := rule.GetAllRules(ctx) From 540f3ca1b7c9423c5c54920986be62ff26fa249d Mon Sep 17 00:00:00 2001 From: jinnrry Date: Tue, 5 Mar 2024 15:27:33 +0800 Subject: [PATCH 09/11] fix --- server/main.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/main.go b/server/main.go index f905477..5aae531 100644 --- a/server/main.go +++ b/server/main.go @@ -50,7 +50,10 @@ func main() { // 日志消息输出可以是任意的io.writer类型 log.SetOutput(os.Stdout) - var cst, _ = time.LoadLocation("Asia/Shanghai") + var cst, err = time.LoadLocation("Asia/Shanghai") + if err != nil { + panic(err) + } time.Local = cst config.Init() From 6250fad15cd9b8e41c1261a7c84c559c12b0db86 Mon Sep 17 00:00:00 2001 From: jinnrry Date: Tue, 5 Mar 2024 15:51:41 +0800 Subject: [PATCH 10/11] fix --- server/main.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/server/main.go b/server/main.go index 5aae531..0738464 100644 --- a/server/main.go +++ b/server/main.go @@ -50,11 +50,8 @@ func main() { // 日志消息输出可以是任意的io.writer类型 log.SetOutput(os.Stdout) - var cst, err = time.LoadLocation("Asia/Shanghai") - if err != nil { - panic(err) - } - time.Local = cst + var cstZone = time.FixedZone("CST", 8*3600) + time.Local = cstZone config.Init() From 5f750157069ba0bec8df17e74e05dabfd3f94231 Mon Sep 17 00:00:00 2001 From: jinnrry Date: Tue, 5 Mar 2024 15:53:53 +0800 Subject: [PATCH 11/11] fix --- server/main.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/server/main.go b/server/main.go index 0738464..ba74697 100644 --- a/server/main.go +++ b/server/main.go @@ -78,12 +78,13 @@ func main() { version = "TestVersion" } - log.Infoln("***************************************************") - log.Infof("***\tServer Start Success Version:%s\n", version) + log.Infoln("*******************************************************************") + log.Infof("***\tServer Start Success \n") + log.Infof("***\tServer Version: %s \n", version) log.Infof("***\tGit Commit Hash: %s ", gitHash) - log.Infof("***\tBuild TimeStamp: %s ", buildTime) + log.Infof("***\tBuild Date: %s ", buildTime) log.Infof("***\tBuild GoLang Version: %s ", goVersion) - log.Infoln("***************************************************") + log.Infoln("*******************************************************************") // 定时任务启动 go cron_server.Start()