Как отправить отправленные письма в почтовый ящик

Как переслать упавшие письма в почтовое ружье?

Я использую mailgun для отправки почты в моем приложении, но некоторые письма сбрасываются. Есть ли какой-нибудь способ отправить отправленные письма?

3 ответа

Решение

Не совсем то, что вы хотите, но у меня был тот же вопрос и попросил их поддержки за помощью. Я хочу отметить их службу, что я получу ответ в следующие 5 минут.

Решение: Вы можете отправить запрос в их API для получения списка отказов и повторно отправить их вручную, проанализировав ответ JSON. Он включает в себя ошибку и код, к которому вы можете обратиться, чтобы решить, следует ли включать этот адрес электронной почты или нет.

Mailgun документация по отскоку API-запроса.

Mailgun теперь выпустил это как новую функцию как на панели управления, так и через API. Но это доступно только для сообщений, которые имеют связанный тип события "доставлено" или "постоянный сбой" и также не старше 3 дней.

API:

Публичный API для этой функции еще не был опубликован, но находится на их дорожной карте.

Панель управления:

Страница "Журналы" теперь позволяет повторно отправлять отдельные сообщения непосредственно в пользовательском интерфейсе. Просто войдите в свою учетную запись Mailgun и перейдите на вкладку Журналы. Нажмите на выпадающее меню cog любого соответствующего сообщения, и вы увидите новую опцию в меню под названием "Переслать сообщение"

Нажатие на это приведет к появлению небольшого всплывающего окна, где вы сможете ввести адрес одного получателя.

Похоже, что Mailgun не поддерживает простой способ пересылки сообщений, поэтому мне пришлось написать сложный скрипт для этого. Вот мои шаги:

1) Извлечь события ошибок из https://api.mailgun.net/v3/{domain}/events?event=rejected+OR+failed

2) Внутри события ошибки находится информация о хранилище, которая выглядит следующим образом:

  "storage": {
    "url": "https://se.api.mailgun.net/v3/domains/{domain}messages/{some-key}", 
    "key": "some-key"
  }

3) Используйте URL-адрес хранилища для получения сведений о хранилище. Здесь вы найдете всю информацию о сообщении, которая требуется для восстановления сообщения, в том числе: to, from, subject, body-html, reply-to, attachments и многое другое.

4) Повторно отправьте сообщение, используя конечную точку сообщений Mailgun: https://api.mailgun.net/v3/{domain}/messages

Когда у меня будет время, я уберу свою реализацию на C# этого и с открытым исходным кодом на GitHub.

Пример из документации о том, как повторно отправить сообщение:

curl -s --user 'api:YOUR_API_KEY' \
    https://se.api.mailgun.net/v3/domains/YOUR_DOMAIN_NAME/messages/STORAGE_URL \
    -F to='bob@example.com'
Другие вопросы по тегам