Sympa receives incoming messages in its msg spool. An image of the message is then created (a MIME::Entity, using MIME-Tools CPAN library) for later processing. At the end, the MIME::Entity object is dumped to the mail tranfer agent (sendmail, postfix,...). Note that the message might be altered by this intermediate MIME::Entity object (row size for Base64 encoded MIME parts for example). The use of the MIME::Entity intermediate object is skipped is a message is S/MIME signed because any changes in any part of the message body would break the S/MIME signature.
Note also that Sympa might perform the following changes to the distributed messages; however some of this alterations of the messages can be configured.
Sympa distribution process copes well with MIME messages, including those including attachments. However there are situations special processing for messages with attachments:
Sympa allows to send customized messages to mailing lists ; each subscriber will receive a customized version of the initial message. The initial message is processed as a template with embedded variables and is parsed, for each subscriber, with the attributes Sympa has associated to her. Note that you can freely create any subscriber attribute, see the custom attributes feature.
The personalization of a message consists to replace variables by the attributes of the user. It uses the TT2 tags in order to distinguish them from text: [% %].
The personalization process occurs as follows:
Here is the syntax for writing a variable: [% user.custom_attribute.ID.value %]
ID is the custom attribute id sub-parameter
Here are the steps to send a customized message to a list :
merge_feature. If set to on, messages will be merged.
Note :
This feature is likely to have an influence on the message dissemination performances. Indeed, to send personalized messages to each user, Sympa opens an SMTP session for each recipient. Previously, it tried to open a session for several recipients if they belonged to the same domain.