30 lines
1.2 KiB
Markdown
30 lines
1.2 KiB
Markdown
|
|
# Postfix probe
|
||
|
|
|
||
|
|
A real Postfix delivers MAS addresses through the `pipe` transport to
|
||
|
|
`mas-gateway` and on to the reference ticket service. A capture proxy
|
||
|
|
(`capture.py`) records the envelope recipient each event carried, so the
|
||
|
|
probe can tell whether Postfix rewrote anything.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
docker build -t mas-postfix-probe experiments/postfix-probe
|
||
|
|
python3 experiments/postfix-probe/probe.py --profile defaults # relay domain
|
||
|
|
python3 experiments/postfix-probe/probe.py --profile local-domain # domain in mydestination
|
||
|
|
python3 experiments/postfix-probe/probe.py --profile local-domain-safe # + swap_bangpath/percent_hack off
|
||
|
|
```
|
||
|
|
|
||
|
|
The other profiles are `defaults-local` and `mas-safe-local`. The repo is
|
||
|
|
mounted read-only. In `results/` a `=` mark means the address arrived
|
||
|
|
unchanged and `!` means it was rewritten. Findings are in
|
||
|
|
`docs/experiment-review.md` under *Email infrastructure*.
|
||
|
|
|
||
|
|
The Postfix side is the `master.cf` entry in `entrypoint.sh`:
|
||
|
|
|
||
|
|
```
|
||
|
|
mas unix - n n - - pipe
|
||
|
|
flags=Rq user=mas argv=/usr/local/bin/mas-gateway --statute <statute>
|
||
|
|
pipe --app-url http://127.0.0.1:8024/mas-events --recipient ${recipient}
|
||
|
|
```
|
||
|
|
|
||
|
|
Set `mas_destination_recipient_limit = 1` so each pipe invocation handles
|
||
|
|
one recipient.
|