32 lines
927 B
Go
32 lines
927 B
Go
package logstore
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
// MailResult 记录投递尝试元数据,不复制正文、附件、认证信息或服务器错误原文。
|
|
func MailResult(userID int, direction string, sender string, recipientCount, size int, result string) {
|
|
if len(sender) > 320 {
|
|
sender = "地址超出显示长度"
|
|
}
|
|
payload, _ := json.Marshal(struct {
|
|
Direction string `json:"direction"`
|
|
Sender string `json:"sender"`
|
|
RecipientCount int `json:"recipientCount"`
|
|
Bytes int `json:"bytes"`
|
|
}{direction, sender, recipientCount, size})
|
|
action := "接收邮件"
|
|
if direction == "outbound" {
|
|
action = "投递邮件"
|
|
}
|
|
if direction == "submission" {
|
|
action = "客户端提交邮件"
|
|
}
|
|
Record(context.Background(), Entry{
|
|
Kind: "mail", ActorID: strconv.Itoa(userID), CreatedAt: time.Now(), Action: action, Result: result, Payload: payload,
|
|
})
|
|
}
|