Versions in this module Expand all Collapse all v1 v1.0.2 Jan 26, 2026 v1.0.1 Jan 26, 2026 v1.0.0 Jan 26, 2026 Changes in this version + type DKIMSummary struct + Algorithm string + Error string + KeySize int + Selector string + Signed bool + ValidFrom time.Time + Verified bool + type DMARCSummary struct + Aligned bool + Alignment string + Error string + Pct int + Policy string + Result string + type ReputationScore struct + BounceRate float64 + ComplaintRate float64 + DeliveryRate float64 + Score int + Status string + type SPFSummary struct + Aligned bool + Error string + IPRange string + Record string + Result string + type SecuritySummary struct + DKIM DKIMSummary + DMARC DMARCSummary + OverallStatus string + Reputation ReputationScore + SPF SPFSummary + type TestConfig struct + DatabasePath string + Debug bool + HTMLReport bool + HTTPAddr string + IMAPAddr string + JSONReport bool + MaxRetries int + OutputDir string + Password string + RetryDelay time.Duration + SMTPAddr string + Timeout time.Duration + Username string + Verbose bool + VerifyDKIM bool + VerifyDMARC bool + VerifySPF bool + func DefaultTestConfig() TestConfig + type TestResult struct + Description string + Duration time.Duration + EndTime time.Time + Errors []error + ID string + Name string + Passed bool + StartTime time.Time + Summary string + Trace []TraceEvent + func NewTestResult(name, description string) *TestResult + func (r *TestResult) AddError(err error) + func (r *TestResult) AddTrace(event TraceEvent) + func (r *TestResult) Complete(passed bool, summary string) + type TestRunner struct + func NewTestRunner(config TestConfig) *TestRunner + func (r *TestRunner) Close() error + func (r *TestRunner) Config() TestConfig + func (r *TestRunner) FetchLatestMessage() (*imap.Message, error) + func (r *TestRunner) IMAPClient() *client.Client + func (r *TestRunner) Run(ctx context.Context, scenario TestScenario) (*TestResult, error) + func (r *TestRunner) SMTPClient() *smtp.Client + func (r *TestRunner) SendEmail(from, to, subject, body string) error + func (r *TestRunner) Tracer() *TraceCollector + func (r *TestRunner) WaitForMessage(timeout time.Duration) (*imap.Message, error) + type TestScenario interface + Cleanup func(ctx context.Context) error + Description func() string + Execute func(ctx context.Context) error + Name func() string + Setup func(ctx context.Context) error + Verify func(ctx context.Context) error + type TraceCollector struct + func NewTraceCollector() *TraceCollector + func (tc *TraceCollector) AddEvent(event TraceEvent) + func (tc *TraceCollector) Clear() + func (tc *TraceCollector) Count() int + func (tc *TraceCollector) Events() []TraceEvent + func (tc *TraceCollector) FilterByComponent(component string) []TraceEvent + func (tc *TraceCollector) FilterByPhase(phase string) []TraceEvent + func (tc *TraceCollector) FilterByStatus(status string) []TraceEvent + func (tc *TraceCollector) Start(phase string) *TraceSpan + func (tc *TraceCollector) StartWithComponent(phase, component string) *TraceSpan + func (tc *TraceCollector) StartWithDetails(phase, component, action string) *TraceSpan + type TraceEvent struct + Action string + Component string + Details map[string]interface{} + Duration time.Duration + Error string + Phase string + Status string + Timestamp time.Time + type TraceSpan struct + func (ts *TraceSpan) Action() string + func (ts *TraceSpan) Component() string + func (ts *TraceSpan) Details() map[string]interface{} + func (ts *TraceSpan) Duration() time.Duration + func (ts *TraceSpan) End() + func (ts *TraceSpan) EndWithError(err error) + func (ts *TraceSpan) EndWithStatus(status string, err error) + func (ts *TraceSpan) IsFinished() bool + func (ts *TraceSpan) Phase() string + func (ts *TraceSpan) WithAction(action string) *TraceSpan + func (ts *TraceSpan) WithComponent(component string) *TraceSpan + func (ts *TraceSpan) WithDetail(key string, value interface{}) *TraceSpan + func (ts *TraceSpan) WithDetails(details map[string]interface{}) *TraceSpan