Message alteration
Sympa's sympa_msg.pl
daemon fetches incoming
messages on the incoming spool, $SPOOLDIR
/msg
directory. Then it creates an memory image of the message
for later processing. At the end, the processed image is stored into
outgoing spool, $SPOOLDIR
/bulk
directory,
and bulk.pl
daemon fetches and dumps it to the mail
transfer agent (MTA).
Does Sympa alter messages?
The intermediate image described above might be altered. However, if a message is S/MIME signed, it should not be altered, because any changes in any part of the message body would break integrity of the S/MIME signature.
Sympa might perform the following changes to the messages to be distributed. Some of these alterations can be configured.
Decrypting
- If a message is encrypted and S/MIME certificate of originator is valid, decryption is tried. Later this message may be encrypted again (see below).
Altering message header
-
X-Sympa-Topic
header field is added as necessity.See "Message topics".
-
If anonymization mode is enabled, several header fields are removed or consealed.
See
anonymous_sender
andanonymous_header_fields
parameters. -
The subject of the message might be changed to add a custom subject tag.
See
custom_subject
. -
Additional header fields are removed according to customizations.
See
remove_headers
andremove_outgoing_headers
.Note
remove_headers
does not remove header fields described after this, butremove_outgoing_headers
can do. Use the latter one only when you know what you are doing, or messages might not be distributed correctly.
-
Reply-To
header field is altered according to configuration.See
reply_to_header
. -
X-Sequence
header field is added. Its value is the sequence number of posts. -
Some header fields are added/removed to prevent mail loop.
See "Loop prevention".
-
Sender
header field is added/altered. It should have appropriate value to satisfy some sender domain validation systems such as DKIM, Sender ID. -
Header fields configured by
custom_header
are added. -
Some mailing list header fields for RFC 2369 compliance (see
rfc2369_header_fields
) are added. Also,List-Id
(RFC 2919) andArchived-At
(RFC 5064) fields are added.- Note that, if message personalization is enabled (see
"Message personalization")
and DKIM signing and/or ARC sealing are enabled (see
"DKIM and ARC features for Sympa"),
List-Unsubscribe
RFC 2369 field will be replaced with theList-Unsubscribe
andList-Unsubscribe-Post
fields for RFC 8058 One-Click Unsubscribe at the step described in the next section.Note
- RFC 8058 One-Click Unsubscribe feature was introduced on Sympa 6.2.72. However, some binary distributions including EPEL7 RPM do not support this feature.
- Note that, if message personalization is enabled (see
"Message personalization")
and DKIM signing and/or ARC sealing are enabled (see
"DKIM and ARC features for Sympa"),
Altering message body
-
Message body is altered according to message reception mode chosen by each recipient.
See "Message reception modes" for details.
-
If message personalization is enabled, message body is altered further.
See "Message personalization".
Encrypting and signing
-
If DMARC protection is enabled,
From
header field is consealed.See "DMARC protection".
-
If original message has been decrypted (i.e. originally encrypted: See above), re-encryption using certificate of recipient is tried. When it fails, a message to inform failure instead of original message is sent to recipient.
See "S/MIME" for further details.
-
If DKIM support is enabled, DKIM signature invalidated by alterations so far is removed, then message is signed using Sympa's private key.
If ARC support is enabled, ARC seal is added using Sympa's private key.
Eventually, the message is delivered to recipient by the MTA.
Message reception modes
List members can choose the reception mode of their own either through the web
interface or via the SET
list
mode mail command.
The available reception modes can be restricted by listmasters and/or list
owners with the
available_user_options
list/global parameter. list owners can define default reception mode for
users added to the list with
default_user_options
list parameter.
Following changes are made by each mode:
Regular delivery
-
mail
: Keeps original content of the message. -
notice
: Keeps only the subject of the message. Message body is entirely removed. -
txt
: Keeps only plain text part ofmultipart/alternative
message. Message content-type is changed from multipart/alternative to text/plain. -
urlize
: Replaces attachments with the links to the file in message archive. This "urlization" depends on the size of each message part: See alsourlize_min_size
parameter. -
not_me
: Same asmail
, however if the recipient is originator of the message, no delivery. -
nomail
: No delivery.
Additionally with mail
, not_me
, txt
or urlize
mode,
"header" and/or "footer" may be added. They are either added as separate MIME
parts, or within the message body if it is of text type.
See
"Message header and footer").
However, mail
and not_me
modes do not alter S/MIME signed message (i.e.
its MIME type is multipart/signed
) so that integrity of signature will not
be broken.
Note
html
reception mode was deprecated on Sympa 6.2.24. Liketxt
mode, this mode intended to keep only HTML part of multipart messages, and therefore not practically useful.
Digest delivery
If the recipient chooses one of following digest delivery modes, multiple messages are compiled in one message and delivered periodically.
digest
: Digest delivery (MIMEmultipart/digest
format).digestplain
: Digest delivery (plain text format according to RFC 1153).summary
: Digest delivery, sort of: Sends the list of links to message archive.
With digest
mode, the body of each message compiled in is not altered.
the other modes does not keep signature.
However, encrypted messages are never included in compiled message.