Automatically Downloading and Saving E-Mail Attachments with Ruby / ActionMailer
Posted on 2008-11-06
I would like to develop a Ruby script, using ActionMailer (or something similar), that logs into a particular e-mail account (on a remote server), checks for new messages, and downloads the messages, saving any attachments (usually .jpg or .pdf) to a subdirectory based on the date the e-mail was sent (local time) and writing relevant header information and any body text to a log file, named according to the date, time, and sender.
So, for example, if email@example.com sent an e-mail to the account in question, two days ago, at 15:34:07 EST, with the attachments 1001.jpg, 1002, jpg, and 1003.jpg, the script when run will create (if it does not yet exist) a directory /path/to/mail/2008/Nov/04, saving the three attachments, and creating a log file named something like 2008-Nov-04-153407-john.log.
This script will be run on a Linux server, and eventually will be scheduled with cron.
I am familiar with Ruby, though I am by no means an expert. ActionMailer, however, I had not used at all until just last week, and so far, I have used it only for sending e-mail.
Initially, I'd like to leave the e-mails on the server, but I'd like to have to option of removing any e-mail older than x number of days.
Any help on this will be greatly appreciated.
Thanks in advance,