Knowledge base

bcc

<source>

The address every message from this source is copied to
in the configuration this is a linebccinside the block <source>
A copy of every message — to one address

The value is one email address. Every message accepted from this source is also sent to it as a blind copy. The purpose the manual names is archiving.

There is no default: if it is not written, there will be no copies.

A copy is a real send, not a record: it goes through queues, counts in accounting, uses connections and falls under the same rate limits as the main mail.

The main trap is volume. The line doubles the source’s mail. On a mailing this means twice as many messages in queues, twice as many accounting records and twice the load on the limits — while in the configuration it looks like one harmless line.

The other edge: the copy address will not be visible, but the messages will go out. If the archive mailbox is at a third-party provider, the full contents of all your mail go there, including recipients’ personal data.

What the Hub does. It does not write it: it keeps the message archive itself — sends, their contents and recipients are stored in the Hub’s database, and there is no reason to put a second copy in a mailbox.

For warm-up the line would be doubly harmful: every message would double the use of the address’s daily quota, and the quota is what warm-up is built around.

Recommended values

What to set. The value is an address; the question is whether it is needed at all:

Value When
do not write it the archive is kept on the sending platform’s side — the usual case
the address of your own mailbox there is a requirement to keep a copy of outgoing mail, and it must be kept as email

If the requirement exists, the mailbox must be your own: the copy carries the full contents of messages along with recipient addresses. And the load must be calculated with doubling.

The syntax and the “for archiving” purpose come from the manual, § 3.3.7.3. The analysis of the doubled load and the choice of mailbox is ours.
Example configuration
# a copy of every message from the source goes to the archive mailbox
<source 10.0.0.0/24>
    bcc archive@example.com</source>
The copy goes as a regular send: with its own queue, its own connections and its own accounting record. There will be twice as much mail from this source.
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▶

Setting the copy in a broad block

our experience

What it costsCopies are collected from all of the node’s submission, not from the part the line was created for. Mail volume doubles entirely, and things end up in the archive that do not belong there.
How to spot itThe queues show the archive mailbox’s domain with a volume comparable to the whole mailing.
How to do it rightMove the line into a narrow block — the one whose submission actually needs archiving.

Not accounting for the doubled load

our experience

What it costsThe copy goes as a regular send and falls under the same rate and connection limits. A node sized for the mailing volume gets twice as much — and hits its own limits.
How to spot itQueues grow, although the mailing volume has not changed.
How to do it rightCalculate the load with doubling or keep the archive on the sending platform’s side.
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
bcc <email-address>
Values
an email address
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. An address named in the 0/0 block will collect copies from all of the node’s submission — including the part the line was not created for.
How to check on the node
The line is visible in the configuration, the consequence — in the queues and accounting:
grep -n 'bcc ' /etc/pmta/config /etc/pmta/virtualhost.txt
pmta show queues --maxitems=20
The archive mailbox’s domain will appear in the queue list as a separate line, and its recipient count will be comparable to the total submission volume. This is the fastest way to notice a forgotten copy.
In the Hub
Cost of a mistake
dangerous: effects outlast a rollback
Scenarios
Sender isolation