http://documentation.mailgun.net/quickstart.html包含Django中HTTP处理程序的一些示例代码:
# Handler for HTTP POST to http://myhost.com/messages for the route defined above
def on_incoming_message(request):
if request.method == 'POST':
sender = request.POST.get('sender')
recipient = request.POST.get('recipient')
subject = request.POST.get('subject', '')
body_plain = request.POST.get('body-plain', '')
body_without_quotes = request.POST.get('stripped-text', '')
# note: other MIME headers are also posted here...
# attachments:
for key in request.FILES:
file = request.FILES[key]
# do something with the file
# Returned text is ignored but HTTP status code matters:
# Mailgun wants to see 2xx, otherwise it will make another attempt in 5
minutes
return HttpResponse('OK')
PHP等价于什么?
我发现了this问题,这给我们留下了以下信息:
对于需要引用的其他任何人,只需调用$ _POST ['value']并 确保返回200 OK标头。
在我的web.php中,我认为它应该是这样的后路由:
Route::post('/messages', 'MessageController@store');
但是在使用post时,出现MethodNotAllowedHttpException错误。
答案 0 :(得分:1)
我的第一个猜测是VerifyCsrfToken
中间件,如果您在web
组上运行它,它将导致问题。将其移至api
组中,查看异常是否消失。然后从控制器方法返回状态为200的响应:
return new \Illuminate\Http\Response;
默认值将返回状态为200的空响应。
别忘了在mailgun控制面板中更新端点(前缀为api
组,您的路由将为/api/messages
)。