我正在使用Underscore + Backbone建立一个网站。 基本上我想知道是否可以从联系表单发送电子邮件。
这是我的Backbone模型:
class ContactModel extends Backbone.Model
defaults :
message : 'Default message'
validate : ( attrs_ ) ->
# Validation Logique
sync : (method, model) ->
xhr = $.ajax
dataType: "json"
type: "POST"
url: # HERE I WANT TO SEND DATA TO GOOGLE APPENGINE
data: model.toJSON()
success : ( jqXHR, textStatus ) =>
console.log 'Success', 'jqXHR_ :', jqXHR, 'textStatus_ :', textStatus
error : ( jqXHR_, textStatus_, errorThrown_ ) ->
console.log 'Success', 'jqXHR_ :', jqXHR_, 'textStatus_ :', textStatus_, 'errorThrown_ :', errorThrown_
我的问题是:是否可以在我的应用引擎中检索从我的模型发送的JSON,以便使用python将模型的消息发送到我的电子邮件地址
答案 0 :(得分:2)
是。只需创建一个POST hander,获取request.body并使用json将其转换为可在python中使用的内容,然后发送电子邮件。
class Guestbook(webapp.RequestHandler):
def post(self):
data = self.response.body
jdata = json.loads(data)
#send email with data in jdata
答案 1 :(得分:0)
最后,我用以下代码解决了这种情况:
import os
import webapp2
import logging
import json
from google.appengine.api import mail
class MainPage(webapp2.RequestHandler):
def get(self):
#If request comes from the App
if self.request.referer == 'Your request.referer' :
message = self.request.get('message')
#If there is no message or message is empty
if not message and len(message) == 0:
self.response.headers.add_header('content-type', 'text/plain', charset='utf-8')
self.response.out.write('An empty message cannot be submitted')
return
#Print message
logging.info('Message : ' + message)
#Set email properties
user_address = 'user_address'
sender_address = 'sender_address'
subject = 'Subject'
body = message
#Send Email
mail.send_mail(sender_address, user_address, subject, body)
#If request comes from unknow sources
else :
self.response.headers.add_header('content-type', 'text/plain', charset='utf-8')
self.response.out.write('This operation is not allowed')
return
app = webapp2.WSGIApplication([('/', MainPage)])