Linux email server - ephemeral guest mode

Budget 0.025
Bids 3
Avg. Bid 0.15286667

Created by : samjs (0)


Rating: 0/ 10  

Project Description

Looking for an experienced Linux email system designer/admin to help us build a catch-all receive-only email server.

Specifically, the deliverable is a set of configuration files and (if necessary) scripts implementing the following functionality on a Linux sendmail/procmail/dovecot server stack:

- accepts all inbound email messages and delivers them to local mailboxes, which are identified by the full email address

- if the mailbox doesn’t exist, it must be created automatically on first message received to that particular address

- mailboxes are accessed via READ-ONLY POP3/IMAP, where the login username is the full email address (see above) and the password is ignored (any input accepted); it is understood that the user authentication method is very weak by design, however in the intended use case this is not a problem

- (OPTIONAL) for a small fraction of the mailboxes, the sysadmin should be able to specify a strong password (via configuration/database file, no user interface required) and allow full read-write access to users such authenticated

- messages older than a specified duration to be purged via periodic cron job.

Platform details (RHEL/CentOS based):

- sendmail <= 8.14.7

- procmail <= 3.22

- dovecot <= 2.2

- bash = 4.2

- cronie = 1.4.11

- perl = 5.16

- python = 2.7

Additional requirements and clarifications:

- a fits-in-head solution making elegant use of native platform resources will be strongly preferred to an overengineered one

- deployment and maintenance procedures must be documented in English

- should allow rapid deployment on a virgin host with minimum manual configuration

- should scale well to several tens of thousands of mailboxes

- multiple domains should co-exist without overlapping (abcde@domain1 != abcde@domain2)

- messages to multiple addresses should be delivered to all respective mailboxes

- mailboxes to use Maildir storage format

- in normal access mode, users should be allowed to read the messages from their respective mailboxes, but may not otherwise interact with the mailbox (mark as read, move, delete etc); this is meant by “read-only IMAP” above

- no third-party packages and no custom patching of native packages

- strictly no compiled code

- if any programming other than shell scripting is required, it must be in platform native Perl or Python

- native shell scripting and grep/sed/awk are preferred, but not if it results in overengineering; 15 lines of Perl are better than 50 lines of shell

- no database server (self-contained files like SQLite accepted)

- (OPTIONAL) no mailbox enumeration via IMAP: a non-existing mailbox should behave the same way as an existing, empty mailbox.


- this is a strictly inbound solution, email sending provisions not required

- spam/malware/attachment filtering are outside the scope of the project

- no front-end user/admin interface, the system should be automated and headless

The developer will be expected to demonstrate the solution on a live VPS (on clearnet or Tor at their latitude), at developer’s own expense.

Skills required

  • Linux
  • Email Handling
  • Perl
  • Python
  • Shell Script
  • Posted 05:34 07/14/19
  • Ends 05:34 07/28/19
  • Project ID 193
  • Report Project
Freelancers Bidding (3)Bid (BTC)


Rating: 0/10  

Iam will so happy if you accept me and I will give you every helping you need about this job .

Bid (BTC): 0.005 BTC


Rating: 9.5/10  

I am a sysadmin based in Prague. I have 15+ years experience managing mail stacks and mail servers for hundreds of users. This job would take me ~18 working hours (inc costs for renting a vps and with a buffer for debugging, scripting and comms). I would use a combination of the stack you require with bash and python scripts. The price is not fixed, and can be negotiated according to the current BTC / EUR price.

Bid (BTC): 0.1036 BTC


Rating: 0/10  

This is doable but requires further discussion

Bid (BTC): 0.35 BTC