Я пытаюсь настроить конечную точку API для сообщений, которые пересылаются из mailgun.
В своем документе у них есть пример кода Django, который выглядит следующим образом:
# 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')
Сейчасв моем приложении Express я получил этот фрагмент кода:
const express = require('express');
const router = express.Router();
// @route POST api/inbox
// @desc HTTP handler for messages from mailgun
// @access public
router.post('/',(req, res) => {
console.log("REQ PARAMS: ");
console.log(req.params);
console.log("REQ BODY: ");
console.log(req.body);
console.log("REQ JSON: ");
console.log(JSON.stringify(req.body));
const sender = req.body.sender;
const recipient = req.body.recipient;
console.log(sender);
console.log(recipient);
res.json({success: true});
});
module.exports = router;
Это развернуто на Heroku, и я получаю следующие выходные данные, когда mailgun попадает в маршрут:
2019-10-03T09:29:39.558514+00:00 app[web.1]: REQ PARAMS:
2019-10-03T09:29:39.558515+00:00 app[web.1]: {}
2019-10-03T09:29:39.558516+00:00 app[web.1]: REQ BODY:
2019-10-03T09:29:39.558518+00:00 app[web.1]: {}
2019-10-03T09:29:39.558519+00:00 app[web.1]: REQ JSON:
2019-10-03T09:29:39.558521+00:00 app[web.1]: {}
2019-10-03T09:29:39.558522+00:00 app[web.1]: undefined
2019-10-03T09:29:39.558524+00:00 app[web.1]: undefined
Я не могу понятьчто я делаю не так, поэтому я рад любой помощи!