Knowledge base

Addresses present on the machine

/getlocalips
Not the ones in the configuration, but the ones that really exist

Lists the IP addresses currently assigned to the machine itself.

The call is GET /getlocalips. The manual shows no format parameter for this endpoint — in the example it is opened in a browser.

Sending addresses are bound to IPs; this output shows which of them actually exist on the node. An address in smtp-source-host that the machine does not have is a common reason a sending address does not work.

Access is decided by http-access based on the address the request came from — the monitor level is enough for reading. The key from http-api-key in the X-API-Key header grants full access from any address.

The main trap is taking the list for the addresses the world sees. The endpoint answers which addresses are assigned to the machine. Behind the hosting provider’s address translation, the interface has an internal address, and that is the one the engine knows — the external one will not be in the response.
What the Hub does. It does not ask: it reads the node’s addresses over SSH with a system command — when connecting the node, after adding an address and via the list refresh button in the node card.
Recommended values

What to ask this endpoint:

Question This one or not
which addresses are assigned to the machine yes
whether the machine has the address from smtp-source-host yes — by comparing with the response
which addresses the world sees no — that is a question for the hosting provider’s network
The call address comes from the manual (§ 5.12). The split of questions and the comparison with sending addresses are ours.
Example configuration
# the machine's addresses
curl -s 'http://127.0.0.1:8080/getlocalips'
The response is compared with the addresses in smtp-source-host lines: an address that is not on the machine will not allow sending from it.
yellow — — directive names, blue — blocks. They are highlighted the same way in the text of the card.
Compatibility
PowerMTA 6.0
described in the manual of this version · platform: any
The vendor does not state the first version for every directive — there is no note here. The name also appears in the 5.0 edition of the manual.
How to check on the node
Compare the response with what the system sees:
curl -s 'http://127.0.0.1:8080/getlocalips'
ip -o addr show scope global | awk '{print $4}'
The second list is the system’s own view. An address from the configuration that is in neither is superfluous.
In the Hub
Cost of a mistake
safe: a wrong value breaks nothing
Scenarios
Sending address rotation · Prepare a node for sending