使用gomail.v2创建一个新的*拨号器

时间:2017-06-06 21:52:59

标签: email go package

我正在使用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

确保我没有以某种方式运行该软件包的过时版本,但没有运气。

1 个答案:

答案 0 :(得分:2)

*Dialer*gomail.Dialer是两种不同的类型。特定错误是因为您的包中没有定义Dialer类型,但您需要匹配签名中的类型,而不仅仅是名称。由于gomail.NewDialer返回*gomail.Dialer,请使用:

func MyDialer() *gomail.Dialer {