blob: ed00b04d24316b821ff7573a1417499f1a68873a [file] [log] [blame]
= Contact collection
== Motivation
Many modern applications combines email and contacts.
We want recipients of emails sent by a user to automatically be added to this user contacts, for convenience. This
should even be performed when a user sends emails via SMTP for example using thunderbird.
== Design
The idea is to send AMQP messages holding information about mail envelope for a traitment via a tierce application.
== Configuration
We can achieve this goal by combining simple mailets building blocks.
Here is a sample pipeline achieving aforementioned objectives :
....
<mailet match="SenderIsLocal" class="ContactExtractor">
<attribute>extractedContacts</attribute>
</mailet>
<mailet match="All" class="AmqpForwardAttribute">
<uri>amqp://${env:JAMES_AMQP_USERNAME}:${env:JAMES_AMQP_PASSWORD}@${env:JAMES_AMQP_HOST}:${env:JAMES_AMQP_PORT}</uri>
<exchange>collector:email</exchange>
<attribute>extractedContacts</attribute>
</mailet>
....
A sample message looks like:
....
{
"userEmail": "sender@james.org",
"emails": ["to@james.org"]
}
....