The task is one and old: find out where a message lands — in the Inbox or in Spam. Neither accounting nor metrics answer it: the receiver responds “accepted” the same way in both cases. The only way is control mailboxes at the mailbox providers themselves.
The vendor offers to do this for you. The addresses are set up on its side, the engine inserts them into a campaign by itself, and the result is visible in its tool.
The mechanism is independent of event export. <signals> and seeding are enabled separately; but if both are used, the subaccounts must be consistent — the vendor stipulates this separately, and adds that there is no rule-based selection here at all, unlike with the export.
The scope is set with a separate line — enable-inline-seeding, and it has three levels: node, pool, sending address. The inheritance rule is the usual one, the pool is stronger than the node. A subtlety: the value true without a subaccount does not inherit the subaccount from above but resets it.
🔎 The task, however, is ours. Control mailboxes — what we planned to use to measure folder placement — run into a problem the vendor has solved here for money: polling mailboxes from one address ends with them being blocked, which means a proxy is needed. For now this part is postponed, and the dashboard shows deliverability by receiver responses (250 / 4xx / 5xx), not by folder.
🔎 The mechanism’s limitations are worth knowing for our own implementation too: a message must carry a job ID, be no larger than 20 MB and have a sender header. We have the first; the rest are reasonable conditions for any such scheme.
The mechanism has no values of its own — it is assembled from the block and the scope line:
| What | With what | Default |
|---|---|---|
| access to the service | api-key in the block | none, mandatory |
| scope | enable-inline-seeding | true on the node if the block exists |
| conversation rhythm | batch-frequency, persist-threshold | 15 seconds, 5 messages |
| decision cache | eligibility-ttl | 5 minutes |
# the block grants access, the scope line says where exactly to seed <inline-seeding> api-key 0123456789abcdef012345678901234567890123 </inline-seeding> enable-inline-seeding true,subaccount=555 <virtual-mta v3> enable-inline-seeding true </virtual-mta>
what people get wrong and how it ends3 mistakes▶
§ 11.2
§ 11.2.2.1
our experience
3 relations
grep -i "seed\|inline" /var/log/pmta/log | tail -20
3 articles
◇What the node tells about itself and through which channelsSeven observation surfaces: the web monitor, the console in four formats, the log, accounting, accounting search, metrics and export to external analytics.◇The watchdog that restarts the engineKeeps an eye on the engine and brings it back up after a crash by itself, sending a crash report to the postmaster address.◇How the policy for a receiver is assembledSettings are assembled from the most general pattern to the most precise; the order of blocks in the file means nothing.