smtplogparser/internal/serversession.go

51 lines
944 B
Go
Raw Permalink Normal View History

2018-03-22 23:35:29 +00:00
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
}