В качестве другого варианта ответа от Габриэля, я бы рекомендовал использовать go
окружение App Engine
вкл Отправка и получение почты с помощью Mail API .
Из документации:
Получение почты
Ваше приложение может получать электронную почту по адресам следующей формы:
anything@appid.appspotmail.com
Сравните с конфигурацией обработки входящей почты в python
, как обсуждалось здесь , включение входящей почты в файле app.yaml
вашего приложения довольно простое :
inbound_services:
- mail
Назовите файл приложения как mail.go
, затем зарегистрируйте обработчик по пути /_ah/mail/
и прочитайте данные электронного письма из *http.Requestlike
, используя net/mail
, например:
func incomingMail(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
defer r.Body.Close()
var b bytes.Buffer
if _, err := b.ReadFrom(r.Body); err != nil {
log.Errorf(ctx, "Error reading body: %v", err)
return
}
log.Infof(ctx, "Received mail: %v", b)
}
Отправка почты
Следуйте этому руководству , чтобы зарегистрировать электронные письма отправителя как авторизованные отправители
Используйте тип mail.Message
, чтобы указать отправителя, получателя, тему и текст сообщения.
Отправьте электронное письмо с функцией mail.Send
.
func confirm(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
addr := r.FormValue("email")
url := createConfirmationURL(r)
msg := &mail.Message{
Sender: "Example.com Support <support@example.com>",
To: []string{addr},
Subject: "Confirm your registration",
Body: fmt.Sprintf(confirmMessage, url),
}
if err := mail.Send(ctx, msg); err != nil {
log.Errorf(ctx, "Couldn't send email: %v", err)
}
}
Развертывание
Полный пример кода получения и отправки доступен здесь, на GitHub:
GoogleCloudPlatform / golang-образцы / документы / AppEngine / почта / mail.go
Чтобы клонировать пример кода, перейдите к Console
. Нажмите кнопку, чтобы открыть Cloud Shell
:
затем аналогично этому быстрому запуску введите следующие шаги:
$ SOURCEDIR=https://github.com/GoogleCloudPlatform/golang-samples.git
$ TUTORIALDIR=~/src/your-application-id/go_gae_samples
$ git clone $SOURCEDIR $TUTORIALDIR
$ cd $TUTORIALDIR
$ git checkout master
$ cat docs/appengine/mail/app.yaml
$ cat docs/appengine/mail/mail.go
$ goapp serve docs/appengine/mail/app.yaml
Отсюда вы можете получить доступ к приложению через порт 8080, используя Web preview
.
Для завершения нажмите Ctrl+C
в Cloud Shell
.
Наконец вы можете развернуть свое приложение
goapp deploy -application your-application-id -version 0
Нажмите на ссылку, чтобы перейти на него
http://your-application-id.appspot.com/
Затем отправьте письмо на anything@your-application-id.appspotmail.com
, посмотрите, работает ли оно.