Переглянути джерело

Add discovery support for SMTP with implicit TLS

master
Simon Ser 4 роки тому
джерело
коміт
bfb2d8a4de
Не вдалося знайти GPG ключ що відповідає даному підпису Ідентифікатор GPG ключа: FDE7BE0E88F5E48
1 змінених файлів з 15 додано та 5 видалено
  1. +15
    -5
      discover.go

+ 15
- 5
discover.go Переглянути файл

@@ -53,14 +53,24 @@ func discoverIMAP(domain string) (*url.URL, error) {
}

// discoverSMTP performs a DNS-based SMTP submission service discovery, as
// defined in RFC 6186 section 3.1.
// defined in RFC 6186 section 3.1. RFC 8314 section 5.1 adds a new service for
// SMTP submission with implicit TLS.
func discoverSMTP(domain string) (*url.URL, error) {
host, err := discoverTCP("submission", domain)
smtpsHost, err := discoverTCP("submissions", domain)
if err != nil {
return nil, err
}
if host == "" {
return nil, fmt.Errorf("SMTP service discovery not configured for domain %q", domain)
if smtpsHost != "" {
return &url.URL{Scheme: "smtps", Host: smtpsHost}, nil
}
return &url.URL{Scheme: "smtp", Host: host}, nil

smtpHost, err := discoverTCP("submission", domain)
if err != nil {
return nil, err
}
if smtpHost != "" {
return &url.URL{Scheme: "smtp", Host: smtpHost}, nil
}

return nil, fmt.Errorf("SMTP service discovery not configured for domain %q", domain)
}

Завантаження…
Відмінити
Зберегти