0
我使用gomail.v2來發送電子郵件,我的代碼工作正常。撰寫郵件msg
後,我可以只運行用gomail.v2創建一個新的*撥號器
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。
\ email.go:42:未定義:撥號
這是爲什麼?我使用與NewDialer
相同的返回類型,這不會導致任何問題。
func NewDialer(host string, port int, username, password string) *Dialer
我錯過了什麼?我跑
去拿-u gopkg.in/gomail.v2
,以確保我沒有莫名其妙的跑出來的包的最新版本,但沒有運氣。
完美,謝謝!作爲一個初學者(這真的是我的第一個項目),我怎麼能自己發現這個呢?我不想在SO上問一堆愚蠢的問題。 :) – Charles
@Charles:你會很快解釋編譯器錯誤,而且它們通常都很好(儘管通常丟失的大括號仍然可以拋出非常差的東西)。 'undefined:Dialer'意味着你的包裏沒有'Dialer',因爲它不是你打算自己聲明的東西,它必須是錯誤的類型。由於導入包中的所有內容都必須以包標識符作爲前綴,因此'gomail'中的'Dialer'必須被引用爲'gomail.Dialer'。 – JimB