2016-12-08 6 views
2

По какой-то причине я не могу понять, как отправлять электронные письма с помощью учетной записи gmail, Appengine и Golang.Go, Appengine, SMTP, Gmail

Вот что я сделал:

Я пошел в Google Cloud Platform> Appengine> Настройки> Выбор проекта и я добавил GMail аккаунт на Email API авторизованных отправителей.

I»пытались сделать эту работу, используя код из (https://golang.org/pkg/net/smtp/#pkg-examples) (функ SendMail)


package main 

import (

    "log" 
    "net/smtp" 
) 

func main() { 

    // Set up authentication information. 
    auth := smtp.PlainAuth("", "[email protected]", "password", "smtp.gmail.com") 

    // Connect to the server, authenticate, set the sender and recipient, 
    // and send the email all in one step. 
    to := []string{"[email protected]"} 
    msg := []byte("To: [email protected]\r\n" + 
     "Subject: discount Gophers!\r\n" + 
     "\r\n" + 
     "This is the email body.\r\n") 
    err := smtp.SendMail(smtp.gmail.com:587", auth, "[email protected]", to, msg) 
    if err != nil { 
     log.Fatal(err) 
    } 
} 

На переднем конце (JavaScript) я получаю неудачный ответ после попытки запустить эту код.

Я бежал это на сервере AppEngine ступенчатого

Я попытался различные SMTP-сервер, порты, пользователей и до сих пор не работают (support.google.com/a/answer/176600?hl=en)

Я нашел несколько примеров на github и каком-то другом блоге, и я попробовал их, но это не изменилось. github.com/golang/go/wiki/SendingMail

nathanleclaire.com/blog/2013/12/17/sending-email-from-gmail-using-golang/

На всех примерах все смотрит прямо вперед, но есть кое-что, что я определенно отсутствует или недоразумение.

+0

FYI: Я только что успешно отправил электронное письмо с кодом, используя мою учетную запись gmail. – doharlem

+0

Вы использовали код локально или в Google Appengine. Есть несколько вещей, которые немного отличаются от App Engine. –

+0

локально. hm ... тогда мое единственное предположение - это порты. Будет ли telnet smtp.gmail.com 587 работать из вашего экземпляра? – doharlem

ответ

0

Там уже некоторые ограничения с созданием сырых соединений TCP на GAE: https://cloud.google.com/appengine/docs/go/sockets/#limitations_and_restrictions

Я бы рекомендовал использовать GAE почту API (который немного diffrent из пакета стандартного SMTP) для отправки сообщений электронной почты: https://cloud.google.com/appengine/docs/go/mail/sending-receiving-with-mail-api

+0

сделаю. Я ценю вашу помощь! –