Pigeonhole - Local Email and SMS Preview

Content Type: Module
Categories: Extensions,Utility,Communication

Overview

Please add a review when you use this module - it goes a long way. Thank you.

Testing email and SMS usually means waiting for a real mail server, borrowing a test account, or sending to your own inbox and hoping nobody else gets it. Pigeonhole removes all of that.


While you run your app locally from Studio Pro, Pigeonhole catches the email, SMS, push and other messages your app sends and shows them in a panel next to your pages and microflows. Nothing leaves your machine and nothing is delivered to anyone.


What you get

- One inbox for email and web calls (SMS, push, chat, any REST call), newest first, with a notification when something arrives.

- A guided first run: the panel walks you through setup and ticks each step off as it happens.

- Safe reading: scripts are blocked, and outside images load only when you ask.

- Links first, each with Copy and Open, so you can click the reset link your app just sent.

- Check before you ship: unfilled placeholders, empty values like token=, links to the wrong local port, a missing subject and emails without a text version are flagged.

- Preview at phone, tablet and full width in a Studio Pro tab, or open the email in your own mail app.

- Test your error handling: one click makes the next email or web call fail.


How to use it

1. Import the Pigeonhole module into your app.

2. Run your app from Studio Pro and open Extensions > Pigeonhole > Open inbox.

3. Point your app's email account at 127.0.0.1, port 2525, any login, no password, SSL and TLS off. For SMS and other web calls, replace the start of your provider's address with http://127.0.0.1:2526.


Good to know

- Local development only. Pigeonhole listens on 127.0.0.1 and does nothing in the cloud or on a server.

- Only what you point at it is caught. Anything not pointed at Pigeonhole still goes to the real provider.

- Caught messages stay out of your commits: Pigeonhole adds its folder to your .gitignore.

- Needs Studio Pro 11.12 or later, on Windows.


Free to use under the Pigeonhole Licence. Questions: kofi@kagt.co.uk


Documentation

Typical usage scenario


You are building a Mendix app that sends email, SMS or push messages, and you want to test those flows on your own machine: sign-up confirmations, password resets, notifications. Pigeonhole catches everything your app sends while you run it locally from Studio Pro and shows it in a panel inside Studio Pro. Nothing is delivered, so you never need a test mail server, a borrowed SMS account, or your own inbox.


Troubleshooting


Pigeonhole has not started Error


If the Studio Pro Console shows:

`Can not find user action with name 'Pigeonhole.EnsureStarted'`

Studio Pro has not compiled Pigeonhole’s Java action into the local deployment yet.


1. Stop your app.

2. In Studio Pro, choose App > Clean Deployment Directory.

3. Close and reopen the app, then choose Run Locally again.


This clears generated local deployment files only; it does not remove your app model or Pigeonhole settings.


Features and limitations


Features:

- One inbox for email and web calls (SMS, push, chat, any REST call), with a notification when something arrives.

- A guided first run that ticks off each setup step as it happens.

- Emails shown safely: scripts blocked, outside images only when you ask.

- Every link listed with Copy and Open.

- An email check that flags unfilled placeholders, empty values, links to the wrong local port, a missing subject and a missing text version.

- Preview at phone, tablet and full width, or open the email in your own mail app.

- One click makes the next email or web call fail, to test your error handling.

Limitations:

- Local development only. Pigeonhole does nothing in the cloud or on a server.

- Windows only for now; Studio Pro 11.12 or later.

- No encrypted connections: SSL and TLS must be off in the email account you test with.

- Web calls get one generic reply (200, with {"ok": true, "caughtBy": "Pigeonhole"}), not the real provider's reply.

- Only the newest 200 messages are kept (you can change this in Setup).


Dependencies [optional]

None. Pigeonhole works with any module that sends email over SMTP, such as the Email Connector, and with any REST call.


Installation [optional]

1. Import the Pigeonhole module package into your app.

2. Run your app from Studio Pro. Pigeonhole starts by itself about a minute after the app is up.

3. Open the panel from Extensions > Pigeonhole > Open inbox.


Configuration [optional]

- Email: in your app's email account, set host 127.0.0.1, port 2525, any login, no password, SSL and TLS off.

- SMS and other web calls: replace the start of your provider's address with http://127.0.0.1:2526 and keep the rest of the path.

- The Setup view in the panel shows these values with Copy buttons, lets you change the ports, and switches Pigeonhole off for one app.

- The module has one scheduled event, SE_EnsureStarted, which starts Pigeonhole in a local run. Leave it enabled; everywhere else it does nothing.


Known bugs [optional]

- Updating Pigeonhole while its preview tab is open can make Pigeonhole disappear from the Extensions menu. This is a Studio Pro issue. Close and reopen your app, and your messages are still there. Close the preview tab before updating to avoid it.


Frequently Asked Questions [optional]

Does anything reach real people?

No. Pigeonhole never forwards anything. But only what you point at it is caught: an SMS provider you did not repoint still sends for real.


Where are caught messages kept?

As files in a mailcatcher folder in your app folder. Pigeonhole adds that folder to your .gitignore, so it stays out of your commits.


Port 2525 is already in use. What now?

The panel says so and offers the next free port in one click, and tells you what to change in your app.


Is it safe to leave in my app when I deploy?

Yes. It only starts in a local development run from Studio Pro.


Releases

Version: 1.0.0
Framework Version: 11.12.1
Release Notes:

Pigeonhole 1.0.0


The first release. Pigeonhole catches the email and messages your app sends while you run it locally from Studio Pro, and shows them in a panel right beside your work. Nothing is delivered to anyone.


Troubleshooting


Pigeonhole has not started Error


If the Studio Pro Console shows:

`Can not find user action with name 'Pigeonhole.EnsureStarted'`

Studio Pro has not compiled Pigeonhole’s Java action into the local deployment yet.


1. Stop your app.

2. In Studio Pro, choose App > Clean Deployment Directory.

3. Close and reopen the app, then choose Run Locally again.


This clears generated local deployment files only; it does not remove your app model or Pigeonhole settings.


What's in it


  • One inbox for email and web calls (SMS, push, chat, any REST call), with a notification when something arrives.
  • A guided first run. The panel walks you through the three steps and ticks them off as they happen.
  • Safe reading. Scripts are blocked, and outside images load only when you ask.
  • Links first, each with Copy and Open.
  • Check before you ship. Unfilled placeholders, empty values, links to the wrong port and missing subjects are flagged.
  • Preview at phone, tablet and full width, or open the email in your own mail app.
  • Test your error handling. One click makes the next email or web call fail.
  • Out of your commits. Pigeonhole adds its folder to your .gitignore, even before the app is under version control.


Good to know


Studio Pro 11.12 or later, on Windows.


Local development only. Pigeonhole listens on 127.0.0.1 and does nothing in the cloud or on a server.

Only what you point at it is caught: email on port 2525, web calls on 2526.


Before updating, close any Pigeonhole preview tab. If the Extensions menu loses Pigeonhole after an update, close and reopen your app.


Help: kofi@kagt.co.uk