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 }