나는 사용하고있다. 가기 Exim의 로컬로 실행되는 인스턴스에 SMTP 프로토콜을 사용하여 전자 메일을 보내려합니다.
나는 같은 Centos 7 컴퓨터에서 제공되는 많은 도메인을 보유하고 있습니다. 해당 도메인은 모두 이메일을 수신하도록 구성됩니다. 얀 데스 . 나는 한계에 부딪 치고 싶지 않다. 얀 데스 나는 많은 양의 이메일을 보낼 것이기 때문에.
Gmail 제안 됨
로컬 메일 서버 사용 - 로컬 메일 서버가있는 경우이를 사용하여 수신자에게 직접 메일을 보내 제한 전송을 피하십시오. 메시지가 스팸으로 표시되지 않게하려면이 로컬 서버를 SPF 레코드에 추가해야합니다.
나는 exim -t
골란 코드와 함께 Gomail 패키지의 WriteTo () BCC 헤더가 포함 된 이메일은 exim에 전달되지 않았습니다.
그래서 나는 SMTP 프로토콜을 on으로 사용하도록 권고 받았다. 스택 오버플로 Gomail은 SMTP에서 완벽하게 작동합니다.
나는 그것을 달성하기 위해 다음 코드를 사용했다.
m := gomail.NewMessage()
m.SetHeader("From", "me@example.com")
m.SetHeader("To", "you@example.com")
m.SetAddressHeader("Bcc", "youbcc@example.com", "Bcc Email")
m.SetHeader("Bcc", "anotherbcc@example.com", "yetbcc@example.com")
m.SetHeader("Reply-To", "me@example.com")
m.SetHeader("Subject", "Subject is to gomail to be discussed")
body := `Why is bcc not getting populated`
m.SetBody("text/html", body)
d := gomail.NewDialer("127.0.0.1", 587, "", "")
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
if err := d.DialAndSend(m); err != nil {
panic(err)
}
다음과 같은 오류가 발생했습니다.
공황 : gomail : 이메일을 보낼 수 없음 1 : 550 me@example.com에 대한 확인 실패 라우팅 할 수없는 주소 보낸 사람 확인에 실패했습니다.
Exim Logs Says :
H = localhost [127.0.0.1] me@example.com에 대한 보낸 사람 확인 실패 : 라우팅 할 수없는 주소
H = localhost [127.0.0.1] X = TLSv1.2 : ECDHE-RSA-AES128-GCM-SHA256 : 128 CV = 아니요 F = me@example.com은 RCPT를 거절했습니다 you@example.com : 보낸 사람 확인에 실패했습니다.
It means Exim failed to verify your From address for some reason. What exactly reason depends on how Exim is configured.
그래서 내 질문에 어떻게 코드를 수정합니까 / Exim 구성 ( VestaCP에 의해 구성됨 )
추신. 실제 코드에서 실제 이메일을 사용하고 있습니다!