Knowledge base

allow-smtputf8

<source>

Whether international addresses can be submitted from this source
in the configuration this is a lineallow-smtputf8 trueinside the block <source>
Accepting is possible, delivering is not guaranteed

The default is true. With it the node advertises SMTPUTF8 in the list of extensions, and the submitting side can put international addresses per RFC 6531 into the message envelope — with letters that are not only Latin.

And right there is the manual’s caveat, which makes this page worth reading to the end. If the receiver for the recipient’s domain does not advertise the extension, the engine will later bounce the message from the queue for that recipient.

That is, the permission acts at acceptance, while the message’s fate is decided at delivery — and not in your favor if the recipient is not ready for international addresses.

The main trap is that the refusal comes late. The message is accepted without objection, goes into the queue, and only at the delivery attempt does it turn out that the recipient’s receiver does not support the extension. Then it is bounced — and in statistics it looks like an ordinary hard bounce, not an incompatibility bounce.

Figuring this out from a single accounting record is hard: the cause lies in someone else’s server capabilities, not in the address.

What the Hub does. It does not write it — the vendor true stays. There are no international addresses in our submission: the audience is collected from lists where addresses are Latin.

The line would become important where such addresses appear — and along with it, you would have to explain to the sender why some messages bounce through no fault of theirs.

Recommended values

What to set. The answer depends on where the audience comes from:

Value When
true (default) international addresses are or may be in the lists
false there are definitely none, and it is better to reject such an address at submission than to bounce it from the queue

The second is more honest where addresses come from a third-party platform: it will see a refusal at submission right away, and a bounce from the queue only in a report.

The true default, the extension advertisement and the caveat about bouncing from the queue come from the manual, § 3.3.7.62. The breakdown of cases is ours.
Example configuration
# we do not expect non-Latin addresses — reject right away, not from the queue
<source 0/0>
    allow-smtputf8 false</source>
With this value the submitting side will not see SMTPUTF8 in the greeting and will get a refusal on the address itself — instead of learning about the refusal from a report a few hours later.
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▶

Taking acceptance as a delivery guarantee

§ 3.3.7.62

What it costsThe message is accepted, goes into the queue and is bounced at the delivery attempt if the recipient’s receiver does not advertise the extension. In statistics this looks like an ordinary hard bounce.
How to spot itBounces come for addresses that were accepted at submission without objection.
How to do it rightCheck whether the receivers of your major recipients support the extension — and do not expect delivery where they do not.

Keeping the permission where addresses are definitely Latin

our experience

What it costsAn invalid address with stray characters passes submission and turns into a bounce from the queue — that is, the sender learns about it several hours later than they could have.
How to spot itBounces include addresses with non-Latin characters.
How to do it rightTurn off the permission: a refusal at submission is clearer to the sender and comes right away.
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
allow-smtputf8 <boolean>
Values
yes | no | true | false
Default
true § 3.3.7.62
Applying
reload, no restart needed
Queue
will not touch what is already queued
Where to write it
<source>
How many times
once in the block
Everything here comes from the manual, with the section.
Inheritance
The directive lives in <source> and follows source merging: a connection falls under all address blocks that cover it, and a narrow one overrides a broad one. For submission under a login the named block applies, and the line has to be repeated in it — we did not see inheritance from address blocks into a named one on our installation.
How to check on the node
The extension advertisement is visible in the receiver’s greeting:
printf 'EHLO test\r\nQUIT\r\n' | nc <node-address> 2525 | grep -i smtputf8
The presence of the line in the response means submitting international addresses is allowed. Whether the node delivers them depends on the recipient’s receiver, and that can be seen only from bounces in accounting.
In the Hub
Cost of a mistake
reversible: harms only while it is set
Scenarios
Connect a sending platform