Knowledge base

What the submission bindings need

API submission requirements
A library, permissions and a group

What it takes for a program to submit messages through the bindings.

Permissions: on Unix the program runs as root or as a user in the pmta group; on Windows as SYSTEM or a user in the Administrators group.

Languages: Perl 5.12 and later, .NET 2.0 and later, Java 6 and later — plus its libraries for JavaMail.

The node: the submission source needs always-allow-relaying yes and allow-mailmerge yes — or always-allow-api-submission yes, which enables mail merge itself.

This is the price of the alternative to SMTP: any platform can use a mail connection without a single change, while a binding requires code and access.

The main trap is large batches. The manual advises no more than 5,000 recipients per submission: when a batch fails, fewer addresses suffer, and less memory is used.
What the Hub does. We do not use bindings — submission goes over SMTP. The entry is useful because it shows what the alternative costs.
Recommended values

Requirements:

What Requirement
permissions on Unix root or the pmta group
permissions on Windows SYSTEM or Administrators
submission source always-allow-relaying and allow-mailmerge
batch size up to 5,000 recipients
The permissions, language versions, source settings and the batch size advice come from the manual (§ 7.1). The table is ours.
Example configuration
<source 10.0.0.5>
    always-allow-relaying yes
    always-allow-api-submission yes</source>
always-allow-api-submission also enables mail merge, so a separate allow-mailmerge line is not needed.
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
Check the program user’s permissions and the bindings themselves:
id appuser
ls /opt/pmta/api
The pmta group in the id output means the right to the bindings is there; the /opt/pmta/api directory holds the bindings themselves on Linux.
In the Hub
Cost of a mistake
reversible: harms only while it is set
Scenarios
Node security · Connect a sending platform