twailer

    0.1.0 • Public • Published

    Twailer

    Get an email whenever a tweet with a certain hashtag or mention is published.

    Workflow

    Subscribe

    If you want to get email updates for some hashtag or mention, simply send an email to subscribe@domain.tld with the hashtag (including #) or mention (including @) in the subject field. If the subscription was successful, you will receive a confirmation email.

    Unsubscribe

    If you no longer want to receive email updates, you can unsubscribe in a similar fasion: send an email to unsubscribe@domain.tld. Supplying the hashtag or mention in the subject field is optional. If you do not supply any, all your subscriptions will be removed.

    Requirements

    • A mailserver (I am using postfix)
    • A Redis server
    • NodeJS
    • Twitter API credentials (to be filled in in config.js)

    Installation

    This installation guide is intended for Ubuntu and postfix. If you are using another MTA, you will have to figure out how to install this yourself. Installation is not that difficult ;)

    First, lets make sure all the requirements are satisfied.

    apt-get install postfix redis-server nodejs
    

    Now, let's install the source files

    mkdir -p /path/to/target/location && cd /path/to/target/location
    npm install twailer
    

    Next, we need to configure postfix. First, we need a new transport method. In master.conf, add

    twailer   unix  -       n       n       -       -       pipe
      flags=FR user=twailer argv=/path/to/twailer/bin/twailer
    

    Because your node installation may be different from mine, you might need to change the shebang. You could use /usr/bin/env node but then you will need to configure postfix to pass the $PATH variable.

    We want emails sent to (un)?subscribe@domain.tld delivered on this machine, so we need to add a mailbox domain in main.cf

    virtual_mailbox_domains = domain.tld [other domains]
    

    We don't want to receive these mails in an inbox, we want them delivered to our new transport. In main.cf, configure the location for the transport map.

    transport_maps = hash:/etc/postfix/transport
    

    In /etc/postfix/transport, add the following lines:

    subscribe@domain.tld    twailer:
    unsubscribe@domain.tld  twailer:
    

    Finally, we need to reload postfix. Don't forget to convert the transport map to Berkeley DB with postmap.

    postmap /etc/postfix/transport
    postfix reload
    

    You're all set! You can now process incoming subscription mails.

    To use the application, start the twailer process.

    node twailer.js 
    

    Questions, Pull Requests

    Open an issue

    Keywords

    none

    Install

    npm i twailer

    DownloadsWeekly Downloads

    2

    Version

    0.1.0

    License

    none

    Last publish

    Collaborators

    • mstaessen