Coder Social home page Coder Social logo

popruxi's Introduction

Popruxi

POP3 proxy with uid mapping ability

Use Case

When migrating POP accounts from one server to another one, the unique IDs of the POP messages do normally change. For people who use their POP accounts with 'leave on server' active this will cause all existing messages to suddenly appear a second time in thier inbox.

The reason for this is, that POP clients use the command UIDL to retreive a list of unique ids for all the messages stored on the server. By comparing this list with the list for the messages already received, they decide which messages they have to download from the POP server.

When switching server products, the UIDL command will normally return all new unique ids for the existing messages.

With Popruxi the list of UIDs can be synced from the old server. The POP proxy service will then on the fly replace the unique ids from the new server with ids from the old server.

Installation

$ cd /opt
$ git clone https://github.com/oetiker/popruxi
$ cd popruxi
$ ./setup/build-perl-modules.sh

Usage

First you have to sync the accounts you have migrated

$ ./bin/uidmatcher.pl --olduser xxx --oldserver old.xxx.yyy --oldpass=sf83j \
  --newserver new.xxx.yyy --newuser xxx --newpass asfoilkjhasf \
  --dbfile /opt/popruxi/uidmap.db

Second you can run the pop proxy server

$ ./bin/popruxi.pl --server new.xxx.yyy --dbfile /opt/popruxi/uidmap.db

Deployment

RHEL

An init.d and sysconfig configuration file is located in setup/rhel

$ cp setup/rhel/rc.d/init.d/popruxi   /etc/rc.d/init.d/
$ chmod 755 /etc/rc.d/init.d/popruxi
$ cp setup/rhel/sysconfig/popruxi     /etc/sysconfig/
$ cp setup/rhel/logrotate.d/popruxi   /etc/logrotate.d/

$ chkconfig  --add popruxi
$ service popruxi restart

popruxi's People

Contributors

oetiker avatar moetiker avatar

Stargazers

Malte S. Stretz avatar

Watchers

Fritz Zaucker avatar  avatar  avatar James Cloos avatar Samuel Amoser avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.