Вы когда-нибудь задумывались, как создать собственный Mail API, подобный Mailgun или Mailjet?

Решением может стать настройка Mail API в Google App Engine (GAE).

GAE предлагает почтовую библиотеку как часть готового решения PaaS.
Библиотеку можно импортировать через:

from google.appengine.api import mail

Чтобы создать RESTful API из этого, мы будем использовать веб-фреймворк Flask и определим правила конечной точки API.
Давайте определим 4 аргумента, которые наша конечная точка API принимает через запросы POST, а именно адрес отправителя (от), адреса получателя (to), тема и тело HTML:

Поскольку API App Engine Mail в настоящее время доступен только в SDK App Engine Standard Python 2.7, мы должны определить файл конфигурации App Engine следующим образом:

Кроме того, поскольку мы зависим от Flask как нашей веб-инфраструктуры API, мы должны определить файл requirements.txt:

Обратите внимание, что App Engine Standard с Python 2.7 SDK не распознает требования автоматически, поэтому нам нужно создать папку lib, содержащую необходимые библиотеки, через:

pip install -r requirements.txt -t lib

Затем эти библиотеки включаются в наше приложение Flask через файл appengine_config.py:

Как только все это будет сделано, ваша структура папок на виртуальной машине GCE, из которой вы развертываете приложение Flask, должна выглядеть следующим образом:

Теперь перейдите в каталог приложений и выполните следующую команду, чтобы развернуть приложение Flask в GAE:

gcloud app deploy app.yaml

Поздравляем!
Вы только что развернули свой Mail API в GAE.

Чтобы протестировать свой API, отправьте запрос POST на конечную точку API.
Например, следующий код Python отправит некоторые результаты обучения на ваш Mail API и уведомит вас: (замените адрес электронной почты и ваш project_id)

Наконец, проверьте свой адрес электронной почты, работает ли он. :)