Подозреваю, что ошибка в этой строке, у вас указывается порт (:25), надо его убрать.
// у вас host = "https://smtp.mail.ru:25", а должен быть "smtp.mail.ru"
auth := smtp.PlainAuth("", from, password, host)
На сколько я вижу вы разбираете пример из официального пакета
https://pkg.go.dev/net/smtp
Добавил туда пару комментариев
import (
"log"
"net/smtp"
)
func main() {
// Set up authentication information.
// тут порт не указан, скорее всего ругается именно в этой строке
auth := smtp.PlainAuth("", "user@example.com", "password", "mail.example.com")
// Connect to the server, authenticate, set the sender and recipient,
// and send the email all in one step.
to := []string{"recipient@example.net"}
msg := []byte("To: recipient@example.net\r\n" +
"Subject: discount Gophers!\r\n" +
"\r\n" +
"This is the email body.\r\n")
// тут порт указан, т.е. host:port, но не указывается протокол типа https, тут протокол SMTP
err := smtp.SendMail("mail.example.com:25", auth, "sender@example.org", to, msg)
if err != nil {
log.Fatal(err)
}
}