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"] }