Golang SMTP 錯(cuò)誤: 535 5.7.0 登錄名或密碼無(wú)效
我正在嘗試使用go創(chuàng)建電子郵件服務(wù)。當(dāng)我嘗試通過(guò)gmail或office365代碼發(fā)送電子郵件時(shí),工作正常,但當(dāng)我嘗試通過(guò)自定義smtp發(fā)送電子郵件時(shí),我得到“535 5.7.0無(wú)效的登錄名或密碼”錯(cuò)誤。我知道用戶名和密碼是正確的,因?yàn)槲艺谂c另一個(gè)python服務(wù)使用相同的密碼和用戶名,其他服務(wù)工作正常。我沒有任何自定義SMTP服務(wù)器的文檔,但我知道SMTP服務(wù)器使用TLS我嘗試了普通的身份驗(yàn)證,gomailer,smtp。SendMail() 函數(shù),沒有 startTLS,但沒有任何變化。這是我的代碼;func (m *Mail) sendMail(body, to, subject string) bool {env := common.GetEnvironment()mailServer := env.MailServermailUsername := env.MailUsernameSMTP := fmt.Sprintf("%s:%s", mailServer, env.MailPort)auth := LoginAuth(mailUsername, env.MailPassword)tlsconfig := &tls.Config{ ServerName: mailServer,}c, err := smtp.Dial(SMTP)if err != nil { zap.S().Error(err) return false}c.StartTLS(tlsconfig)if err = c.Auth(auth); err != nil { zap.S().Error(err) return false}if err = c.Mail(mailUsername); err != nil { zap.S().Error(err) return false}if err = c.Rcpt(to); err != nil { zap.S().Error(err) return false}w, err := c.Data()if err != nil { zap.S().Error(err) return false}_, err = w.Write([]byte(body))if err != nil { zap.S().Error(err) return false}err = w.Close()if err != nil { zap.S().Error(err) return false}c.Quit()return true}身份驗(yàn)證功能; import ( "errors" "net/smtp")type loginAuth struct { username, password string}func LoginAuth(username, password string) smtp.Auth { return &loginAuth{username, password}}func (a *loginAuth) Start(server *smtp.ServerInfo) (string, []byte, error) { return "LOGIN", []byte(a.username), nil}func (a *loginAuth) Next(fromServer []byte, more bool) ([]byte, error) { if more { switch string(fromServer) { case "Username:": return []byte(a.username), nil case "Password:": return []byte(a.password), nil default: return nil, errors.New("unknown from server") } } return nil, nil}感謝您的幫助
查看完整描述