51 lines
944 B
Go
51 lines
944 B
Go
package internal
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
var (
|
|
sessionCSVHeader = []string{
|
|
"Date",
|
|
"Time",
|
|
"From",
|
|
"To",
|
|
"Subject",
|
|
"Passed",
|
|
"SMTPServer session ID",
|
|
"Message short ID",
|
|
}
|
|
)
|
|
|
|
type SMTPServerSession struct {
|
|
SMTPServerSessionID string
|
|
MessageID string
|
|
RecipientAddress string
|
|
SenderAddress string
|
|
Subject string
|
|
IsSent bool
|
|
Timestamp time.Time
|
|
}
|
|
|
|
func (sss *SMTPServerSession) csv() []string {
|
|
return []string{
|
|
sss.Timestamp.Format("2006-01-02"),
|
|
sss.Timestamp.Format("15:04:05"),
|
|
sss.SenderAddress,
|
|
sss.RecipientAddress,
|
|
sss.Subject,
|
|
fmt.Sprintf("%v", sss.IsSent),
|
|
sss.SMTPServerSessionID,
|
|
sss.MessageID,
|
|
}
|
|
}
|
|
|
|
func (sss *SMTPServerSession) IsMatchByMessageId(messageId string, timestamp time.Time) (result bool) {
|
|
result = strings.EqualFold(messageId, sss.MessageID) &&
|
|
timestamp.Sub(sss.Timestamp) < maxMessageAge
|
|
return
|
|
|
|
}
|