python3 使用 google-app-engine 接收电子邮件,如何配置到特定应用程序,而不是默认应用程序
python3 use google-app-engine receive email, how to configure to specific app, not default app
我可以在google-app-engine的默认服务接收eamil,地址是anystring@my-appid.appspotmail.com,但我需要发送到特定的服务,不是默认服务,我该怎么做,下面是我的代码,在此先感谢。
app.yaml
runtime: python39
app_engine_apis: true
service: target-service
inbound_services:
- mail
- mail_bounce
句柄code:main.py
from flask import Flask, request
from google.appengine.api import wrap_wsgi_app
from google.appengine.api import mail
app = Flask(__name__)
app.wsgi_app = wrap_wsgi_app(app.wsgi_app, use_deferred=True)
@app.route('/_ah/mail/<path>', methods=['POST'])
def receive_mail(path):
mail_message = mail.InboundEmailMessage(request.get_data())
print("called")
return 'Success'
为了能够在 App Engine 中使用特定服务,您需要在 app.yaml
:
中指定它
service: service-name
此外,如果您计划在您的应用中使用多项服务,这里有一个 documentation 可用于构建您的应用。
刚刚在 Python2.7 中测试了这个,但我相信它应该在 Python3 中工作(邮件部分的原则应该是相同的,但可能需要一些调整其他地方)
我有一个带有 app.yaml
文件的 default
服务和另一个名为 second-service
的服务,带有 second-service.yaml
.
将以下内容添加到 app.yaml
和 second-service.yaml
文件
inbound_services:
- mail
- 将此添加到
second-service.yaml
请注意,我的 python 文件在此处称为 second.py
。它处理路由到 second-service
的流量
- url: /_ah/mail/.+
script: second.app
- 将此添加到
app.yaml
请注意,我的 python 文件在此处称为 ``main.py```。
- url: /_ah/mail/.+
script: main.app
- 向
main.py
和 second.py
添加了以下内容
@app.route('/_ah/mail/<path>', methods=['POST'])
def receive_mail(path):
mail_message = mail.InboundEmailMessage(request.get_data())
logging.info(mail_message.subject)
return 'Success'
- 为了测试,我向以下地址发送了电子邮件,它们仅由各自的服务接收。
注意:我使用 -dot-
而不是 .
作为 multi-service 位。
a) 支持@second-service-dot-.appspotmail.com
b) 支持@.appspotmail.com
最后一点:我只有 service: second-service
second-service.yaml
我可以在google-app-engine的默认服务接收eamil,地址是anystring@my-appid.appspotmail.com,但我需要发送到特定的服务,不是默认服务,我该怎么做,下面是我的代码,在此先感谢。
app.yaml
runtime: python39
app_engine_apis: true
service: target-service
inbound_services:
- mail
- mail_bounce
句柄code:main.py
from flask import Flask, request
from google.appengine.api import wrap_wsgi_app
from google.appengine.api import mail
app = Flask(__name__)
app.wsgi_app = wrap_wsgi_app(app.wsgi_app, use_deferred=True)
@app.route('/_ah/mail/<path>', methods=['POST'])
def receive_mail(path):
mail_message = mail.InboundEmailMessage(request.get_data())
print("called")
return 'Success'
为了能够在 App Engine 中使用特定服务,您需要在 app.yaml
:
service: service-name
此外,如果您计划在您的应用中使用多项服务,这里有一个 documentation 可用于构建您的应用。
刚刚在 Python2.7 中测试了这个,但我相信它应该在 Python3 中工作(邮件部分的原则应该是相同的,但可能需要一些调整其他地方)
我有一个带有
app.yaml
文件的default
服务和另一个名为second-service
的服务,带有second-service.yaml
.将以下内容添加到
app.yaml
和second-service.yaml
文件
inbound_services:
- mail
- 将此添加到
second-service.yaml
请注意,我的 python 文件在此处称为second.py
。它处理路由到second-service
的流量
- url: /_ah/mail/.+
script: second.app
- 将此添加到
app.yaml
请注意,我的 python 文件在此处称为 ``main.py```。
- url: /_ah/mail/.+
script: main.app
- 向
main.py
和second.py
添加了以下内容
@app.route('/_ah/mail/<path>', methods=['POST'])
def receive_mail(path):
mail_message = mail.InboundEmailMessage(request.get_data())
logging.info(mail_message.subject)
return 'Success'
- 为了测试,我向以下地址发送了电子邮件,它们仅由各自的服务接收。
注意:我使用 -dot-
而不是 .
作为 multi-service 位。
a) 支持@second-service-dot-
b) 支持@
最后一点:我只有 service: second-service
second-service.yaml