면책 조항 :이 스레드에서 비슷한 질문을 보았습니다. Golang multiple recipients with gomail.v2이 작업을 수행 할 수 없으며 도움을 청하는 데 의견이있는 주스가 아직 없습니다. 그 질문에서 op는 os.Args[]
을 사용하는 반면, 설정 파일에 저장된 슬라이스를 사용하고 싶습니다. Gomail.v2 - 슬라이스의 여러 수령인
Mail
를 통해 구조체
Email
의 예를
e
에 조각
ToMail
에 포함
여러 수신자 목록에 보낼 수있는 멋진 gomail.v2 패키지를 사용하려고 시도하고있다. 슬라이스
ToMail
의 모든받는 사람에게 보낼 수 있도록 ...
./mailer.go:37: not enough arguments in call to m.SetAddressHeader
have (string, []string...)
want (string, string, string)
어떻게 제대로 SetAddressHeader("To"
내 조각의 각받는 사람을 전달할 수있는 방법을 :
컴파일러는 라인 (37)에 불만?
나는 시도했다 :
package main
import (
"fmt"
"gopkg.in/gomail.v2"
)
type Email struct {
FromMail, FromFirstLast, Password, Subject, Body, Server string
ToMail []string
Port int
}
func main() {
e := Email{FromMail: "[email protected]",
FromFirstLast: "From User",
ToMail: []string{"[email protected]", "[email protected]"},
Password: "passpasspass",
Subject: "Test",
Body:"TEST BODY",
Server: "foo.foomail.com",
Port: 587,}
err := e.Mail()
if err != nil {
fmt.Println(err)
}
}
func (e Email)Mail() (error) {
m := gomail.NewMessage()
m.SetAddressHeader("From", e.FromMail, e.FromFirstLast)
addresses := make([]string, len(e.ToMail))
for i, _ := range addresses{
addresses[i] = m.FormatAddress(e.ToMail[i], "")
}
m.SetAddressHeader("To", addresses...)
m.SetHeader("Subject", e.Subject)
m.SetBody("text/plain", e.Body)
d := gomail.NewPlainDialer(e.Server, e.Port, e.FromMail, e.Password)
if err := d.DialAndSend(m); err != nil {
return err
}
return nil
}
오, 세상에, 내가 가정'SetHeader'이 SetAddressHeader' 현재이었다 단지 V1의 API에서, 그리고 '이었다. 그럴리가! 'SetHeader'는 나를 위해 일했습니다. 고마워요! – gpanda