Я использую «net / mail» и «net / smtp» для создания почтового клиента в Go, но он не работает, когда он находится за прокси-сервером.
У меня была такая же проблема для http-клиента, но она была решена с помощью &http.Transport{Proxy: http.ProxyFromEnvironment}
Не удалось найти аналогичное исправление для SMTP
Приведенный ниже код работает на моем компьютере, который находится за корпоративным прокси. но если я запускаю тот же код на виртуальной машине, которая не находится за прокси-сервером, это работает.
package main
import (
"fmt"
"net/smtp"
)
func main() {
fmt.Println("email sending")
// Set up authentication information.
auth := smtp.PlainAuth(
"",
"ma****017@gmail.com",
"A***a",
"smtp.gmail.com",
)
// Connect to the server, authenticate, set the sender and recipient,
// and send the email all in one step.
err := smtp.SendMail(
"smtp.gmail.com:587",
auth,
"ma***17@gmail.com",
[]string{"chi****11@gmail.com"},
[]byte("This is the email body."),
)
if err != nil {
panic(err)
}
fmt.Println("email sent")
}