Knowledge base

PMTA knowledge base›Block Global›Directive§ 3.3.1.56.3

pickup-remove-dot

Global

Whether to remove the extra dot at the start of a line in pickup files
in the configuration this is a linepickup-remove-dot falseinside the block Global
A concession to a program that confused submission methods

The default is false.

The line exists because two submission methods differ. In the SMTP protocol, a line starting with a dot must be escaped with a second dot. In a pickup directory file, escaping is not needed.

A program written for SMTP and retrained to use files often keeps adding the second dot. Then the extra dot ends up in the message and reaches the recipient.

With true the engine removes this second dot.

The main trap is enabling it where the dot is not added. The line does not check where the second dot came from: it always removes it. A message in which a line legitimately starts with two dots will reach the recipient with one.

The case is rare but not made up: this is what borders in plain-text messages and some markup look like. It can only be checked with a message to your own mailbox.

Hence the rule: the line fixes a known fault of a specific submitting program, it is not set in advance.

What the Hub does. It does not write it: the pickup directory is not declared, and there is nothing to configure.
Recommended values

What to set. The line is targeted:

Value When
false (default) the submitting program builds files correctly
true it is known to add the second dot out of SMTP habit

The second should be enabled after you have seen the extra dot in a delivered message, not on suspicion.

The default false and the analysis of the difference between SMTP and a pickup file are from the manual, § 3.3.1.56.3. The warning about legitimate double dots is ours.
Example configuration
# the submitting program escapes the dot out of SMTP habit
pickup /opt/pickup/new /opt/pickup/badfiles
pickup-remove-dot yes
The engine will remove the second dot at the start of a line. It does not check whether the dot is extra or legitimate — so enable it only for a known fault.
yellow — — directive names, blue — blocks. They are highlighted the same way in the text of the card.
▲

Common mistakes and problems

what people get wrong and how it ends2 mistakes▶

Enabling the line in advance

our experience

What it costsThe engine always removes the second dot, without checking whether it is extra or legitimate. Messages where a line legitimately starts with two dots arrive altered.
How to spot itIn delivered messages one dot at the start of a line is missing.
How to do it rightEnable it only for a known fault of the submitting program and check with a message.

Fixing on the node what should be fixed on the submitting side

§ 3.3.1.56.3

What it costsThe real cause is a program that escapes the dot by the wrong rule. The node setting hides the symptom, and when moving to submission over HTTP the error may come back.
How to spot itThe same program also produces extra dots when submitting over HTTP, where the dot does not need escaping either.
How to do it rightFix how the file is built on the submitting side; keep the line as a temporary measure.
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.
Reference data
Syntax
pickup-remove-dot <boolean>
Values
yes | no | true | false
Default
false § 3.3.1.56.3
Applying
reload, no restart needed
Queue
will not touch what is already queued
Where to write it
Global
How many times
once in the block
Everything here comes from the manual, with the section.
Inheritance
The directive is written at the root of the configuration file and applies to the whole node. Only one pickup directory is supported, so there is only one setting — there is no separate one for different submitting programs.
How to check on the node
The line is visible in the configuration, the consequence — in a delivered message:
grep -n 'pickup' /etc/pmta/config
Check it with a message to a control mailbox: a line starting with a dot should arrive with one dot, not two and not none.
In the Hub
Cost of a mistake
safe: a wrong value breaks nothing
Scenarios
Connect a sending platform