smtp error: 535 5.7.8 Username and Password not accepted for gmail in go
smtp error: 535 5.7.8 Username and Password not accepted for gmail in go
我正在尝试使用此功能测试应用程序从本地主机发出的电子邮件:
func SendContactUsForm(subject, email, body string) error {
var err error
from := "mysender@gmail.com"
pass := "somecrazypw"
to := "mydestination@gmail.com"
msg := "From: " + from + "\n" +
"To: " + to + "\n" +
"Subject: Contact form:" + subject + "\n" + body
err = smtp.SendMail("smtp.gmail.com:587",
smtp.PlainAuth("", from, pass, "smtp.gmail.com"),
from, []string{to}, []byte(msg))
if err != nil {
log.Printf("smtp error: %s", err)
return err
}
return nil
}
但是我得到这个错误:
send_emails.go:171: smtp error: 535 5.7.8 Username and Password not
accepted. Learn more at
5.7.8 https://support.google.com/mail/?p=BadCredentials a7sm5381413wmh.14 - gsmtp contact.go:38: error seding contact us form
535 5.7.8 Username and Password not accepted.
尽管 mysender@gmail.com
的凭据是正确的并且我在 mysender@gmail.com
上启用了 Allow less secure apps
。
那么这里可能出了什么问题?我该如何解决?
从 https://security.google.com/settings/security/apppasswords 生成密码并改用该密码。
An App Password is a 16-digit passcode that gives an app or device restricted access to your Google Account without having to divulge your personal password and complete access to your Google Account.
关于如何生成一个的更多details!
转到您的 gmail 帐户中的安全并启用 3party APP 访问...这将解决问题。仅供参考,如果您启用了两步验证,我相信这将无法正常工作。所以您可能必须创建一个新的 gmail 帐户,然后启用转发....
登录 gmail 帐户。
转到管理您的 google 帐户。
打开不太安全的应用程序访问
在此之后,当您尝试从您的应用程序发送邮件时,您可能会收到错误消息。
如果是这样,请转到发现的安全问题(它是 google 帐户安全选项卡中的第一个选项)
在这里您需要验证最后的活动是否已验证并且是您。
如果您在 Google 帐户上启用了双因素身份验证,那么您将无法使用常规密码通过代码访问邮件。您需要生成应用专用密码并使用该密码代替您的实际密码。
执行以下步骤生成应用专用密码,
- 登录到您的 Google 帐户或使用此 link https://security.google.com/settings/security/apppasswords
- 转到
My Account > Sign-in & Security > App Passwords
- 在密码和登录方法中向下滚动到 Select 应用,然后选择其他(自定义名称)为该应用密码命名,例如:“automailer”
- 选择生成复制生成的长密码并将其粘贴到您的脚本中,而不是实际的 Gmail 密码。
我正在尝试使用此功能测试应用程序从本地主机发出的电子邮件:
func SendContactUsForm(subject, email, body string) error {
var err error
from := "mysender@gmail.com"
pass := "somecrazypw"
to := "mydestination@gmail.com"
msg := "From: " + from + "\n" +
"To: " + to + "\n" +
"Subject: Contact form:" + subject + "\n" + body
err = smtp.SendMail("smtp.gmail.com:587",
smtp.PlainAuth("", from, pass, "smtp.gmail.com"),
from, []string{to}, []byte(msg))
if err != nil {
log.Printf("smtp error: %s", err)
return err
}
return nil
}
但是我得到这个错误:
send_emails.go:171: smtp error: 535 5.7.8 Username and Password not accepted. Learn more at 5.7.8 https://support.google.com/mail/?p=BadCredentials a7sm5381413wmh.14 - gsmtp contact.go:38: error seding contact us form 535 5.7.8 Username and Password not accepted.
尽管 mysender@gmail.com
的凭据是正确的并且我在 mysender@gmail.com
上启用了 Allow less secure apps
。
那么这里可能出了什么问题?我该如何解决?
从 https://security.google.com/settings/security/apppasswords 生成密码并改用该密码。
An App Password is a 16-digit passcode that gives an app or device restricted access to your Google Account without having to divulge your personal password and complete access to your Google Account.
关于如何生成一个的更多details!
转到您的 gmail 帐户中的安全并启用 3party APP 访问...这将解决问题。仅供参考,如果您启用了两步验证,我相信这将无法正常工作。所以您可能必须创建一个新的 gmail 帐户,然后启用转发....
登录 gmail 帐户。 转到管理您的 google 帐户。 打开不太安全的应用程序访问 在此之后,当您尝试从您的应用程序发送邮件时,您可能会收到错误消息。 如果是这样,请转到发现的安全问题(它是 google 帐户安全选项卡中的第一个选项) 在这里您需要验证最后的活动是否已验证并且是您。
如果您在 Google 帐户上启用了双因素身份验证,那么您将无法使用常规密码通过代码访问邮件。您需要生成应用专用密码并使用该密码代替您的实际密码。
执行以下步骤生成应用专用密码,
- 登录到您的 Google 帐户或使用此 link https://security.google.com/settings/security/apppasswords
- 转到
My Account > Sign-in & Security > App Passwords
- 在密码和登录方法中向下滚动到 Select 应用,然后选择其他(自定义名称)为该应用密码命名,例如:“automailer”
- 选择生成复制生成的长密码并将其粘贴到您的脚本中,而不是实际的 Gmail 密码。