From 10a65aed02e11375610d957d6dcbfe5fd82eef8d Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Thu, 21 May 2026 18:35:42 +0800 Subject: [PATCH] Move from_address to domain options with no-reply default --- checker/collect.go | 6 +++++- checker/definition.go | 13 ++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/checker/collect.go b/checker/collect.go index d675434..8ec5c38 100644 --- a/checker/collect.go +++ b/checker/collect.go @@ -158,7 +158,11 @@ func loadConfig(opts sdk.CheckerOptions) (*runConfig, error) { return nil, fmt.Errorf("smtp_host is required") } if cfg.FromAddress == "" { - return nil, fmt.Errorf("from_address is required") + domain := strings.TrimSpace(stringOpt(opts, "domain_name")) + if domain == "" { + return nil, fmt.Errorf("from_address is required when domain_name is not set") + } + cfg.FromAddress = "no-reply@" + strings.TrimSuffix(domain, ".") } parsedFrom, err := mail.ParseAddress(cfg.FromAddress) if err != nil { diff --git a/checker/definition.go b/checker/definition.go index f6223fa..787ff00 100644 --- a/checker/definition.go +++ b/checker/definition.go @@ -71,13 +71,6 @@ func Definition() *sdk.CheckerDefinition { Choices: []string{"starttls", "tls", "none"}, Default: "starttls", }, - { - Id: "from_address", - Type: "string", - Label: "From address", - Description: "Address used in the From header of the test email. Must be in the tested domain.", - Required: true, - }, { Id: "subject_override", Type: "string", @@ -119,6 +112,12 @@ func Definition() *sdk.CheckerDefinition { Label: "Domain name", AutoFill: sdk.AutoFillDomainName, }, + { + Id: "from_address", + Type: "string", + Label: "From address", + Description: "Address used in the From header of the test email. Must be in the tested domain. Defaults to no-reply@.", + }, }, }, Rules: []sdk.CheckRule{