Text Blame Raw

Pagure's Milter

Milter 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.