No description
Find a file
Andrew Ferrier 23efd894f9 Revert "Experiment with using pdftotext."
This reverts commit 90e21e8aa8b635696ff0ebe668b97a7f373c07a7.
2016-08-26 08:00:47 +04:00
debian/DEBIAN Switch to html5lib from lxml to fix DeprecationWarnings. 2016-01-14 21:39:46 +04:00
docker/email2pdf Consolidate Dockerfiles. 2014-12-25 19:33:43 +00:00
performance Add initial performance profiling support. 2015-11-02 22:10:15 +00:00
tests Revert "Experiment with using pdftotext." 2016-08-26 08:00:47 +04:00
.dockerignore Don't copy debs into Docker. 2015-01-02 12:49:30 +00:00
.gitignore Add initial performance profiling support. 2015-11-02 22:10:15 +00:00
.travis.yml Add build notifications. 2016-02-09 22:50:15 +00:00
Dockerfile Revert "Experiment with using pdftotext." 2016-08-26 08:00:47 +04:00
email2pdf Version check. 2016-08-26 08:00:05 +04:00
getmailrc.sample Add --mostly-hide-warnings flag. 2015-08-19 00:26:01 +02:00
HACKING.md Factor out requirements, add Travis config. 2015-12-26 18:31:25 +00:00
LICENSE.txt Update copyright date. 2016-01-26 22:14:05 +01:00
Makefile '-f' is no longer a supported flag for docker tag. 2016-08-21 22:47:43 +04:00
README.md Add a comment about procmail. 2016-01-05 12:27:50 +00:00
requirements.txt Add missing requirements. 2016-01-14 21:40:10 +04:00
requirements_hacking.txt Fix package name. 2015-12-26 18:35:15 +00:00

email2pdf

Travis CI Status

email2pdf is a Python script to convert emails to PDF from the command-line. email2pdf acts in place of a mail delivery agent - it won't retrieve emails for you, but it will take them from standard input as an MDA will and 'deliver' them to PDF files. It is well-placed to use together with getmail. You can also just use it as a standalone utility to convert a raw email (normally an .eml file) to a PDF. Type email2pdf --help for more information on usage and options available.

For more information on hacking/developing email2pdf, please see HACKING.md. Note that use is subject to the license conditions.

Installing Dependencies

Before you can use email2pdf, you need to install some dependencies. The instructions here are split out by platform:

Debian/Ubuntu

  • wkhtmltopdf - Install the .deb from http://wkhtmltopdf.org/ rather than using apt-get to minimise the dependencies you need to install (in particular, to avoid needing a package manager).

  • getmail - getmail is optional, but it works well as a companion to email2pdf. Install using apt-get install getmail.

  • Others - there are some other Python library dependencies. Run make builddeb to create a .deb package, then install it with dpkg -i mydeb.deb. This will prompt you regarding any missing dependencies.

OS X

  • wkhtmltopdf - Install the package from http://wkhtmltopdf.org/downloads.html.

  • getmail - TODO: This hasn't been tested, so there are no instructions here yet! Note that getmail is optional.

  • Install Homebrew

  • xcode-select --install (for lxml, because of this)

  • brew install python3 (or otherwise make sure you have Python 3 and pip3 available).

  • brew install libmagic

  • pip3 install -r requirements.txt

Configuring getmail

getmail is not strictly a dependency, but when it is combined with email2pdf, it can be used to retrieve new emails from a remote IMAP server and automatically convert them to PDFs locally. The getmailrc.sample file in the repository can be used as a starting point for your own getmailrc to do this. Note that the sample will need editing, of course - see the getmail documentation for more information on that. Also, it is configured by default to delete remote emails from the server once they are converted - be careful with that. You might want to consider setting up your crontab something like this:

  @hourly getmail --verbose | logger

This will ensure that getmail is invoked hourly to fetch email, and log its output to syslog.

If your mailserver is unreliable, you might want to consider wrapping the getmail cron job with cromer.

Configuring procmail

I don't have any direct experience using procmail with email2pdf, so don't have any specific setup steps, although I understand it can be made to work. You should be aware that currently there is an outstanding issue with I/O encodings with procmail that you may need to work around - see issue #76 for more information.