Pagure's Milter
===============

`Milter <http://www.postfix.org/MILTER_README.html>`_ are script executed by
postfix upon sending or receiving an email.

We use this system to allow pagure's users to comment on a ticket (or a
pull-request) by directly replying to the email sent as a notification.

Pagure's milter is designed to be run on the same machine as the mail server
(postfix by default). Postfix connecting to the milter via a unix socket.

The milter itself is a service managed by systemd.
You can find all the relevant files for the milter under the ``milters`` folder
in the sources.


Install the milter
------------------

The first step to enable the milter on a pagure instance is thus to install the
``.service`` file for systemd and place the corresponding script that, by
default, should go to ``/usr/share/pagure/comment_email_milter.py``.

If you are using the RPM, install ``pagure-milters`` should provide and install
all the files correctly.


Activate the milter
-------------------

Make sure the milter is running and will be automaticall started at boot by
running the commands:

To start the milter:

::

    systemctl start pagure_milter

To ensure the milter is always started at boot time:

::

    systemctl enable pagure_milter


Activate the milter in postfix
------------------------------

To actually activate the milter in postfix is in fact really easy, all it takes
is two lines in the ``main.cf`` file of postfix:

::

    non_smtpd_milters = unix:/var/run/pagure/paguresock
    smtpd_milters = unix:/var/run/pagure/paguresock

These two lines are pointing to the unix socket used by postfix to communicate
with the milter. This socket is defined in the milter file itself, in the
sources: ``milters/comment_email_milter.py``.

