public
Description: email => [http post, jabber]
Homepage: http://oss.techno-weenie.net/discussions/astrotrain
Clone URL: git://github.com/entp/astrotrain.git
astrotrain / README
100644 47 lines (36 sloc) 1.544 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
astrotrain
==========
 
NOTE: Astrotrain is a full gem now. If you're looking for the old Astrotrain on merb:
http://github.com/entp/astrotrain/tree/merb
git://github.com/entp/astrotrain.git (merb branch)
 
Scans incoming emails for mapped recipients and sends an HTTP POST somewhere.
 
  # setup a config file.
  # Point the queue_path at a directory that your mail server dumps each raw incoming mail.
  require 'astrotrain'
 
  Astrotrain.load path do
    DataMapper.setup(:default, {
      :adapter => "mysql",
      :database => "astrotrain",
      :username => "root",
      :host => "localhost"
    })
  end
  Astrotrain::Message.queue_path = "/path/to/maildir"
  Astrotrain::Mapping::Transport.processing = true
 
  # start up IRB
  irb -I /var/astrotrain/lib -r config.rb
 
  # manage mappings
  LIB=/var/astrotrain/lib CONFIG=config.rb rake at:mappings
  LIB=/var/astrotrain/lib CONFIG=config.rb rake at:map EMAIL=support@foo.com DEST=http://foo.com/email
  LIB=/var/astrotrain/lib CONFIG=config.rb rake at:unmap MAP=123
 
  # start the server that runs over the queue directory
  LIB=/var/astrotrain/lib CONFIG=config.rb rake at:process
 
  # start the sinatra API
  ruby -I /var/astrotrain/lib /var/astrotrain/lib/astrotrain/api.rb config.rb
 
A single Astrotrain process currently handles email for two production applications, processing thousands daily.
It's far from perfect, but definitely usable.
 
TODO
====
 
Gem package - I realize the load paths could be simplified a bunch, so a gem package will come soon.
Docs
bounced emails