Reputation: 819
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?
Upvotes: 20
Views: 102046
Reputation: 1
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
Upvotes: 0
Reputation: 4204
Enable the 2FA (2 Step Verification) authentication: myaccount.google.com/security if not already
Generate a password from https://security.google.com/settings/security/apppasswords and use that password instead.
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.
More details on how to generate one!
Upvotes: 24
Reputation: 1
Just Enable the 2 step verification on then and then only you are able to generate "App Password" for any Gmail account.
Upvotes: 0
Reputation: 11
I was getting user error smtp error: 535 5.7.8, not letting me verify the email. It took me hours trying all the steps above to no avail. Finally, I could add another Gmail address to my main Gmail account.
Open Gmail - click on the setting icon wheel upper right corner Click See All Settings Click Account Under Send Email click Add Another Email Address Enter the name you want to be shown when someone opens the email Enter the email address you are sending from or an alias address ...Next step is where the verification and error message happens Instead of adding your new or alias address and password, add your main G-Mail account username and password.
Good Luck!
Upvotes: 0
Reputation: 395
1-turn on 2-step verification in your google acount => security
2-in the {Signing in to Google } then go to App passwords and set a password for your app(for example for PHPMailer).then put this password in your sendmail file in your project.
Upvotes: 1
Reputation: 141
2023: Allowing less secure apps is not permitted. Solution: Login to your gmail account, go to Account Settings> Privacy and enable 2FA. After this search for App Passwords and create one, copy this and enter it as the password for your app. This shall solve any authentication errors, you are facing.
Upvotes: 12
Reputation: 15590
If you have enabled 2-factor authentication on your Google account then you can't use your regular password to access mail through code. You need to generate an app-specific password and use that instead your actual password.
Do the following steps to generate app specific password,
My Account > Sign-in & Security > App Passwords
Upvotes: 8
Reputation: 9
login to gmail account. go to Manage your google account. turn ON Less secure app access after this when you try to send mail from your app you might get error . if so go to Security issues found ( it's first option in security tab of google account ) here you need to verify that last activities is verified and its you .
Upvotes: 0
Reputation: 51
Go to Security inside your gmail account and enable 3party APP access... This will fix the problem. FYI, I believe this wont work if you have 2-step auth turned on. So you may have to create a new gmail account and then enable forwarding....
Upvotes: 5