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

但是提示,他们不了解Dialer。



为什么是这样?我使用的返回类型与NewDialer相同,这不会引起任何问题。
func NewDialer(host string, port int, username, password string) *Dialer

我想念什么?我跑了



确保我不是以某种方式运行过时的软件包,但那里没有运气。

最佳答案

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

func MyDialer() *gomail.Dialer {

关于email - 使用gomail.v2创建新的* Dialer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44400384/

10-09 20:04