我正在使用gomail.v2发送电子邮件,我的代码运行正常。撰写邮件msg
后,我可以运行
import ("gopkg.in/gomail.v2")
...
d := gomail.NewDialer("smtp.example.com", 25, "username", "password")
return d.DialAndSend(msg)
}
当然,我想将这个特定的用户名和密码概括一下,并将其分成自己的函数,所以我把它删掉了:
import ("gopkg.in/gomail.v2")
...
d := MyDialer()
return d.DialAndSend(msg)
}
func MyDialer() *Dialer {
return gomail.NewDialer("smtp.example.com", 25, "username", "password")
}
但是请大声说抱怨说它不知道戴尔勒。
。\ email.go:42:undefined:Dialer
这是为什么?我使用与NewDialer
相同的返回类型,这不会导致任何问题。
func NewDialer(host string, port int, username, password string) *Dialer
我错过了什么?我跑了
go get -u gopkg.in/gomail.v2
确保我没有以某种方式运行该软件包的过时版本,但没有运气。
答案 0 :(得分:2)
*Dialer
和*gomail.Dialer
是两种不同的类型。特定错误是因为您的包中没有定义Dialer
类型,但您需要匹配签名中的类型,而不仅仅是名称。由于gomail.NewDialer
返回*gomail.Dialer
,请使用:
func MyDialer() *gomail.Dialer {