I'm trying to test an app's outgoing emails from localhost using this function:
func SendContactUsForm(subject, email, body string) error {
var err error
from := "[email protected]"
pass := "somecrazypw"
to := "[email protected]"
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
}
But I get this error:
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.
Despite the fact that the credentials of [email protected]
are correct and I have enabled Allow less secure apps
on [email protected]
.
So what could be wrong here? And how can I fix it?
Allow less secure apps
is enabled. Google passive-aggressively auto-disables it because they hate you and want you to use their crappy app-password feature (even if it's not available for your account). – Omdurman