/astrotrain

email => [http post, jabber]

Primary LanguageRubyMIT LicenseMIT

astrotrain
==========

Scans incoming emails for mapped recipients and sends an HTTP POST somewhere.

  @user = User.new :login => 'bob'
  @user.password = @user.password_confirmation = 'monkey'
  @user.save

  # set a mapping to accept email for support@example.com
  @mapping = @user.mappings.build(:email_user => 'support', :email_domain => 'example.com', :destination => '...')
  @mapping.save
  
  # you can also create wildcards for users:
  @user.mappings.build(:email_user => 'reply-*', :email_domain => 'example.com', ...)
  @user.mappings.build(:email_user => '*', :email_domain => 'example.com', ...)

  # need a script to read from STDIN to process emails.
  /usr/bin/merb -m /var/www/astrotrain -r 'Message.receive(STDIN.read)' -e production

  # set it up in postfix (master.cf, ymmv)
  astrotrain unix  -       n       n       -       -       pipe
  flags=O user=www-data argv=/var/www/astrotrain/merb.sh

This is still highly experimental.  Don't even bother with the web UI yet,
there's no protection against anyone signing up and creating mappings on your server.

TODO
====

Real web UI
Jabber support
DRb daemon
bounced emails