From d652b7d393365a892a2a002cb6f4c362d6ecf45a Mon Sep 17 00:00:00 2001 From: smail Date: Tue, 22 Sep 2026 12:47:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E9=BD=90=E6=B3=9B=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=20DNS=20=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/services/setup/dns.go | 3 ++- backend/services/setup/dns_test.go | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/backend/services/setup/dns.go b/backend/services/setup/dns.go index f4f9c9a..ec5911a 100644 --- a/backend/services/setup/dns.go +++ b/backend/services/setup/dns.go @@ -61,7 +61,7 @@ func buildDNSItemsWithWebIPv4(configData *config.Config, domain, dkimPublicKey, address = "[未检测到公网 IPv4]" } - items := make([]*DNSItem, 0, 13) + items := make([]*DNSItem, 0, 14) appendARecord := func(host string) { for _, item := range items { if item.Type == "A" && item.Host == host { @@ -124,6 +124,7 @@ func buildDNSItemsWithWebIPv4(configData *config.Config, domain, dkimPublicKey, appendAAAARecord(host, address) } } + appendARecord("*") items = append(items, &DNSItem{Type: "MX", Host: "@", Value: fmt.Sprintf("smtp.%s | 1", domain), TTL: dnsRecordTTL}, diff --git a/backend/services/setup/dns_test.go b/backend/services/setup/dns_test.go index e728a15..c882d85 100644 --- a/backend/services/setup/dns_test.go +++ b/backend/services/setup/dns_test.go @@ -69,8 +69,8 @@ func TestBuildDNSItemsCreatesExpectedRecordShape(t *testing.T) { } items := buildDNSItemsWithWebIPv4(cfg, "example.com", "v=DKIM1; k=rsa; p=test", "198.51.100.20", "2001:db8::20", "", []string{"203.0.113.20"}) - if len(items) != 13 { - t.Fatalf("DNS item count = %d, want 13", len(items)) + if len(items) != 14 { + t.Fatalf("DNS item count = %d, want 14", len(items)) } if items[0].Host != "panel" || items[0].Type != "A" || items[0].Value != "203.0.113.20" { t.Fatalf("web A record = %#v", items[0]) @@ -86,8 +86,11 @@ func TestBuildDNSItemsCreatesExpectedRecordShape(t *testing.T) { t.Fatalf("mail service AAAA record = %#v", items[index]) } } - if items[9].Value != "smtp.example.com | 1" || items[9].TTL != dnsRecordTTL { - t.Fatalf("MX record = %#v", items[9]) + if items[9].Host != "*" || items[9].Type != "A" || items[9].Value != "198.51.100.20" || items[9].TTL != dnsRecordTTL { + t.Fatalf("wildcard A record = %#v", items[9]) + } + if items[10].Value != "smtp.example.com | 1" || items[10].TTL != dnsRecordTTL { + t.Fatalf("MX record = %#v", items[10]) } }