Preview: SendMock has no stable release yet. These docs follow develop.
SendMock
DeeperWebhooks

Inbound routes in depth

Every control and text of Webhooks > Inbound routes and the route editor.

Every control and text this screen shows, in screen order. The list is read from the demo by a crawl, and CI fails when the screen changes without its entry here.

Webhooks > Inbound routes decides what happens to incoming email, in Mailgun's route syntax.

The screen as a whole: Inbound routes.

Inbound routes, with a number on each control

The numbers match the entries below. The picture shows the first screenful; controls further down, and texts, have no marker.

On the screen

1. Inbound routes

Heading.

  • What it does: Names the screen, in the header and above the list.

2. Read the Inbound routes guide

Link.

  • What it does: Opens this screen's page in the user guide, in a new tab.
  • Links to: Inbound routes.

3. What happens to incoming emails, such as replies to mail your app sent: matching routes run in priority order until one stops, like Mailgun Routes.

Text.

4. Add route

Button.

5. Priority

Column.

  • What it does: The route's priority; lower runs first.

6. Route

Column.

  • What it does: Its expression and actions, in Mailgun's syntax.

7. Actions

Column.

  • What it does: Move, Edit and Delete.

8. Move … up

Button, in each row.

9. Move … down

Button, in each row.

10. Edit …

Button, in each row.

  • What it does: Opens the route's editor.

11. Delete …

Button, in each row.

New route editor

12. Add route

Heading.

  • What it does: The new route editor.

13. Which incoming emails it takes, and what it does with them, in Mailgun's route syntax.

Text.

  • What it does: Explains the editor.

14. Priority

Field.

  • What it does: When the route runs among the others.

15. Lower runs first.

Text.

  • What it does: Explains the priority.

16. Description

Field.

  • What it does: A note on what the route is for.

17. Match recipient A regex on each recipient address.

Choice.

  • What it does: The route takes emails whose recipient matches the pattern (match_recipient).

18. Match header A regex on a header, e.g. subject.

Choice.

  • What it does: The route takes emails whose header matches the pattern (match_header).

19. Catch all Every incoming email.

Choice.

  • What it does: The route takes every incoming email (catch_all).

20. Pattern

Field.

  • What it does: The regular expression to match.

21. A Python-style regex matched from the start; (?P<token>...) captures a group for \g<token> in actions.

Text.

22. match_recipient("")

Text.

  • What it does: The expression as Mailgun would show it, while the pattern is empty.

23. Actions

Heading.

  • What it does: What the route does with a matching email.

24. Run in this order; URLs and addresses can use captured groups such as \g<token> .

Text.

  • What it does: Explains the actions: forward to a URL or an address, store, or stop.

25. Add action

Button.

  • What it does: Adds an action.

26. Move Action #: Forward to URL up

Button.

  • What it does: Runs the action earlier.

27. Move Action #: Forward to URL down

Button.

  • What it does: Runs the action later.

28. Remove Action #: Forward to URL

Button.

  • What it does: Removes the action.

29. Action #: Forward to URL target

Field.

  • What it does: Where the action forwards the email: a URL gets Mailgun's multipart fields, signed.

30. Fix the pattern to see which emails match.

Text.

  • What it does: Shown while the pattern is not valid.

31. Cancel

Button.

  • What it does: Closes the editor without saving.

32. Add route

Button.

33. Close

Button.

  • What it does: Closes the editor without saving.

Route editor

34. Edit route

Heading.

  • What it does: The editor of an existing route.

35. Which incoming emails it takes, and what it does with them, in Mailgun's route syntax.

Text.

  • What it does: Explains the editor.

36. Priority

Field.

  • What it does: When the route runs among the others.

37. Lower runs first.

Text.

  • What it does: Explains the priority.

38. Description

Field.

  • What it does: A note on what the route is for.

39. Match recipient A regex on each recipient address.

Choice.

  • What it does: The route takes emails whose recipient matches the pattern (match_recipient).

40. Match header A regex on a header, e.g. subject.

Choice.

  • What it does: The route takes emails whose header matches the pattern (match_header).

41. Catch all Every incoming email.

Choice.

  • What it does: The route takes every incoming email (catch_all).

42. Pattern

Field.

  • What it does: The regular expression to match.

43. A Python-style regex matched from the start; (?P<token>...) captures a group for \g<token> in actions.

Text.

44. match_recipient("reply\+(?P<token>[\w-]+)@reply\.app\.test")

Text.

  • What it does: The expression as Mailgun would show it (here the demo's reply route).

45. Actions

Heading.

  • What it does: What the route does with a matching email.

46. Run in this order; URLs and addresses can use captured groups such as \g<token> .

Text.

  • What it does: Explains the actions: forward to a URL or an address, store, or stop.

47. Add action

Button.

  • What it does: Adds an action.

48. Move Action #: … up

Button, in each row.

  • What it does: Runs that action earlier.

49. Move Action #: … down

Button, in each row.

  • What it does: Runs that action later.

50. Remove Action #: …

Button, in each row.

  • What it does: Removes that action.

51. Action #: Forward to URL target

Field, in each row.

  • What it does: Where that action forwards the email.

52. Matches # of the last # incoming emails

Text.

53. Cancel

Button.

  • What it does: Closes the editor without saving.

54. Save route

Button.

55. Close

Button.

  • What it does: Closes the editor without saving.

When the data cannot load

56. Could not load the inbound routes. Try again

Message.

  • What it does: Shown when the routes could not be loaded.
  • Errors: Check SendMock is running, then press Try again.

57. Could not load the inbound routes.

Text.

  • What it does: The message inside the alert.

58. Try again

Button.

On this page

On the screen1. Inbound routes2. Read the Inbound routes guide3. What happens to incoming emails, such as replies to mail your app sent: matching routes run in priority order until one stops, like Mailgun Routes.4. Add route5. Priority6. Route7. Actions8. Move … up9. Move … down10. Edit …11. Delete …New route editor12. Add route13. Which incoming emails it takes, and what it does with them, in Mailgun's route syntax.14. Priority15. Lower runs first.16. Description17. Match recipient A regex on each recipient address.18. Match header A regex on a header, e.g. subject.19. Catch all Every incoming email.20. Pattern21. A Python-style regex matched from the start; (?P<token>...) captures a group for \g<token> in actions.22. match_recipient("")23. Actions24. Run in this order; URLs and addresses can use captured groups such as \g<token> .25. Add action26. Move Action #: Forward to URL up27. Move Action #: Forward to URL down28. Remove Action #: Forward to URL29. Action #: Forward to URL target30. Fix the pattern to see which emails match.31. Cancel32. Add route33. CloseRoute editor34. Edit route35. Which incoming emails it takes, and what it does with them, in Mailgun's route syntax.36. Priority37. Lower runs first.38. Description39. Match recipient A regex on each recipient address.40. Match header A regex on a header, e.g. subject.41. Catch all Every incoming email.42. Pattern43. A Python-style regex matched from the start; (?P<token>...) captures a group for \g<token> in actions.44. match_recipient("reply\+(?P<token>[\w-]+)@reply\.app\.test")45. Actions46. Run in this order; URLs and addresses can use captured groups such as \g<token> .47. Add action48. Move Action #: … up49. Move Action #: … down50. Remove Action #: …51. Action #: Forward to URL target52. Matches # of the last # incoming emails53. Cancel54. Save route55. CloseWhen the data cannot load56. Could not load the inbound routes. Try again57. Could not load the inbound routes.58. Try again