2016-12-19 3 views
1

У меня есть страница контактов, которая должна отправлять электронную почту через gmail.Не удается отправить письмо через gmail

Вот код:

func sendContactEmail(subject string, email string, message string) { 

    auth := smtp.PlainAuth(
     "contact form submit", 
     "[email protected]", 
     "mypassword", 
     "smtp.gmail.com", 
    ) 
    // Connect to the server, authenticate, set the sender and recipient, 
    // and send the email all in one step. 


    body := subject + "\r\n" + email +"\r\n" + message 

    msg := "Subject: Contact us" + "\r\n\r\n" + body + "\r\n" 

    err := smtp.SendMail(
     "smtp.gmail.com:587", 
     auth, 
     "[email protected]", 
     []string{"[email protected]"},   
     []byte(msg), 
    ) 
    if err != nil { 
     log.Fatal(err) 
    } 
    return 
} 

func ContactPOST(w http.ResponseWriter, r *http.Request) { 

    // Get form values 
    subject := r.FormValue("subject") 
    email := r.FormValue("email") 
    message := r.FormValue("message") 
    go sendContactEmail(subject, email, message) 
    // Display the thank you page 
    v := view.New(r) 
    v.Name = "contact/thanks" 
    v.Render(w) 
    return 
} 

А вот сообщение об ошибке:

contact.go:41: 534 5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbti 
5.7.14 HcGWI2H6QjVTNjHS4X49PcBxQQGNhL9TKnzdQxqYgeUXkWxpHj90RSAaIbI-ySSrKFTV4q 
5.7.14 IVZeXExVeqhuZnPhtvUtx9p5Ly7gBxwFLzrrgWcm4NZ3_vhDOWiH-uDsPb5eoa4rbYCepd 
5.7.14 PlD9kBBz1dAlhdRDJ7mwqsUMJUV7MHTgNWqTcT_R89Uq9oYtwurtmGAuv2YAkPTCBtPwXq 
5.7.14 9ooL5edn_sTI6WJW72sK2ilMCIUB0> Please log in via your web browser and 
5.7.14 then try again. 
5.7.14 Learn more at 
5.7.14 https://support.google.com/mail/answer/78754 63sm17219759wmg.2 - gsmtp 

Странная вещь, что форма работает хорошо, когда я отправить почту на моей машине развития, и ошибка возникает только тогда, когда приложение развертывается на VPS, где http-сервер просто умирает после отображения страницы thank you.

Я также пробовал звонить sendContactEmail без goroutine, но все равно получаю ту же ошибку.

Я ценю ваши намеки, чтобы решить эту проблему.

ответ

1

У моей организации была аналогичная проблема. Нам нужно было войти в нашу консоль электронной почты администратора в gmail и включить ретрансляцию smtp для нашего IP-адреса, чтобы веб-аутентификация больше не нужна. См. Здесь помощь.

https://support.google.com/a/answer/2956491?hl=en


ценят также разъяснения. Вы абсолютно правы, что для личных счетов вы можете перейти по этой ссылке (https://accounts.google.com/DisplayUnlockCaptcha) и иметь возможность иметь подходящую аутентификацию через почтовое реле.

+0

Ну, я использую личную учетную запись (а не G-комплект), и я установил «Доступ для менее безопасных приложений». – graco

+0

Обновление: в соответствии с рекомендациями по поиску и устранению неполадок Google, которые посещают эту страницу, 'https: // accounts.google.com/DisplayUnlockCaptcha' решил проблему. Пожалуйста, уточните свой ответ, и я приму его. – graco

Смежные вопросы