Почтовый сервер с Golang - PullRequest
1 голос
/ 04 апреля 2020

У меня есть действующий почтовый сервер с сертификатами SSL, записями DNS и PTR и общей безопасной конфигурацией.

Я могу отправлять почту с терминала с помощью инструмента sendmail. Но когда я пытаюсь с этим кодом:

package main

import (
        "fmt"
        "net/smtp"
)

func main(){
        err := smtp.SendMail("localhost:25",nil, "yo@testgolang.com", []string {"someemail@gmail.com"}, []byte("This is a test form golang"))
        if err != nil {
                fmt.Println(err.Error())
        }
}

я получаю следующую ошибку:

x509: certificate is valid for mydomain.com, not localhost

Что я должен изменить в своем коде (или в конфигурации сервера), чтобы иметь возможность отправлять письма с моего кода.

1 Ответ

0 голосов
/ 04 апреля 2020

Источником ошибки является то, что по соображениям безопасности участвующие стороны ожидают, что имена хостов будут совпадать с именами в сертификате. sendmail, вероятно, не проверяет сертификаты (я не нашел упоминания grep в man-странице).

Решение состоит в том, чтобы подключиться к серверу, используя правильное доменное имя, или для тестирования, чтобы создать сертификат. что соответствует доменному имени localhost.

...