Mailgun: есть ли способ получить сохраненное сообщение, от которого отказался вызов webhook?
У меня есть приложение Mailgun с входящим маршрутом, настроенным следующим образом:
match_recipient('me@example.com')
store(notify='https://www.example.com/endpoint')
В какой-то момент я переключил домен с www.example.com
в www.example2.com
с перенаправлением 301 через провайдера DNS (читай: я не могу получить доступ к журналам..) без изменения маршрутов Mailgun.
В течение нескольких дней я получал кучу постоянных ошибок в журналах, поскольку webhook, похоже, не следит за перенаправлениями.
Теперь я хотел бы попытаться получить эти сохраненные сообщения, но там я не могу найти исходный идентификатор.
Вот что хранится в журнале событий Mailgun:
{
"severity": "permanent",
"tags": [],
"delivery-status": {
"retry-seconds": 14400,
"message": "<html><body>You are being <a href=\"https://www.example2.com/endpoint\">redirected</a>.</body></html>",
"code": 301,
"description": "<html><body>You are being <a href=\"https://www.example2.com/endpoint\">redirected</a>.</body></html>",
"session-seconds": 0.7563347816467285
},
"envelope": {
"targets": "https://www.example.com/endpoint",
"transport": "http",
"sender": "postmaster@example.com"
},
"log-level": "error",
"id": "dffZ3qigQpyKGNdwhfj26A",
"campaigns": [],
"reason": "old",
"user-variables": {},
"flags": {
"is-routed": null,
"is-authenticated": true,
"is-callback": true,
"is-system-test": false,
"is-test-mode": false
},
"timestamp": 1430473028.303534,
"message": {
"headers": {
"to": null,
"message-id": "20150430214155.10820.14949@example.com",
"from": "postmaster@example.com",
"subject": null
},
"attachments": [],
"recipients": [
"https://example.com/endpoint"
],
"size": 47467
},
"recipient": "https://example.com/endpoint",
"event": "failed"
}
(1) В приведенном выше id
кажется, представляет идентификатор события, который я считаю неактуальным, и идентификатор сообщения, кажется, 20150430214155.10820.14949
,
(2) В типичном сценарии успеха webhook сообщение, отправляемое на сервер, содержит callback-URL для извлечения сообщения, которое выглядит следующим образом:
https://api.mailgun.net/v2/domains/www.example.com/messages/WyI4MzNheDUxMmRjIiwgWyI0ZWFiNWM1Mi05Zjg4LTRkMjctYjdhMS04ZTM3Y2E3ZDJmNTkiXSwgIm1haWxndW4iLCAib2xkY29rZSJd
Это сообщение в кодировке Base64 следующего (все UID изменены):
["833ax512dc", ["4eab5c52-9f88-4d27-b7a1-8e37ca7d2f59"], "mailgun", "oldcoke"]
Есть ли способ создать URL-адрес для извлечения хранимых сообщений, используя идентификатор сообщения 20150430214155.10820.14949?
1 ответ
Возможно, это уже слишком поздно для AmitA, но если кто-то еще хочет узнать, как получить этот поисковый URL, мой подход заключался в использовании API событий:
GET / events? Message-id={идентификатор вашего сообщения}
Это возвращает ответ со списком результатов под ключом "items". Эти элементы будут иметь этот URL под ключом "storage", как "url".
Так что если response
ответ на этот вызов GET, URL для первого ответа будет найден в response['items'][0]['storage']['url']
,
Я надеюсь, что это помогает кому-то там!