Как вы используете канал и goroutine для отправки электронной почты с gomail?
мой код вроде этого
ch := make(chan *gomail.Message, 10)
// Use the channel in your program to send emails.
m := gomail.NewMessage()
m.SetHeader("From", "myemail@gmail.com")
m.SetHeader("To", "to@mail.com")
m.SetHeader("Subject", "Hello!")
m.SetBody("text/html", "Hello <b>Holaaa</b> and <I>test</i>!")
ch <- m
go func() {
d := gomail.NewDialer("smtp.gmail.com", 465, "myemail@gmail.com", "password")
var s gomail.SendCloser
var err error
open := false
for {
select {
case m, ok := <-ch:
if !ok {
return
}
if !open {
if s, err = d.Dial(); err != nil {
panic(err)
}
open = true
}
if err := gomail.Send(s, m); err != nil {
log.Print(err)
}
// Close the connection to the SMTP server if no email was sent in
// the last 30 seconds.
case <-time.After(30 * time.Second):
if open {
if err := s.Close(); err != nil {
panic(err)
}
open = false
}
}
}
}()
}
// Close the channel to stop the mail daemon.
close(ch)
Вы используете такой канал?Или кто-то может исправить это, если это неправильно?
, когда я отправляю на домен gmail.com, мое письмо не попадает в их спам, но когда я отправляю письмо на другой домен Gmail, оно отправляется их спаму, яне знаю почему, есть ли какая-либо конфигурация, чтобы не отправлять спам на другие домены, кроме gmail?