Skip to content

Alexis211/pymaild

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 

Repository files navigation

PyMaild 0.3 ReadMe

DISCLAIMER : PyMaild is in early alpha stage, use it at your own risk !

-- Installation :
Copy pymaild.conf to /etc. This file MUST be in /etc. If it is not, you will have to edit pymaild.py.
Copy pymaild.py to /usr/bin (or /usr/local/bin if you prefer). If it is not executable, chmod +x it.
Copy the mail/ directory somewhere, for example to /var/pymaild (optionnal, it will be created otherwise)

-- Configuration :
Edit pymaild.conf, change whatever you need to be changed.
You should change :
- smtprelay : if using PyMaild to relay mail, enter your SMTP relay server here
- serverhostname : for a basic installation, just put in 'localhost'
- localdomain : change this to your domain name
- maildir : change this if you have not copied the mail/ directory to /var/pymaild
- serverhost : change this to 0.0.0.0 to allow all IP addresses to connect

-- Starting/stopping PyMaild :
Assuming you have installed it to /usr/bin :
pymaild.py start
pymaild.py stop
All these commands must be run as a user that has write permission to maildir, pidfile and logfile (see pymaild.conf).

-- Managing user mailboxes :
No mailbox is needed for PyMaild to work correctly, by default none exists.
pymaild.py adduser [<usename> [<password>]]
pymaild.py rmuser <user to remove>
pymaild.py chpasswd <username> [<new password>]
All mailboxes have some options (for example the maximum size for mailbox contents).
Modify an option : pymaild.py chopt <username> <option> <newvalue>
Modify an option in default conf (used for all new mailboxes) : pymaild.py chdefaultopt <option> <newvalue>
Show mailbox information : pymaild.py getinfo <username> (this also returns information about waiting mail count and size, and server configuration)
All these functions are to be used for example in a web administration interface. (PHP : use shell_exec() to get output of a command)

-- Updating MX record cache :
PyMaild keeps a cache of MX servers associated with each domain name (list is in mail/mxservers).
You may want to regenerate this list. To do so, first stop PyMaild, then run :
pymaild.py updatemx

-- Managing maililng lists :
pyMaild has included support for mailing lists. Lists addresses are of this form : <list name>@lists.<domain name>.
pymaild.py addlist <listname>
pymaild.py rmlist <listname>
pymaild.py mlsubscribe <list> <email>
pymaild.py mlunsubscribe <list> <email>

-- Using pyMaild as sendmail :
pymaild.py sendmail <options> [<recipients>]
Available options are : 
-t : parse message headers for recipients (headers To:, Cc: and Bcc:. Bcc: headers will be removed.)
-i : ignore dots alone on lines by themselves in incoming message. Wait for a EOF character.
You do not need to have the pymaild daemon started to use this functionnality.

-- Information about pyMaild :
[maildir]/pymaild.sqlite is the database for all of pymaild's stuff.
[maildir]/usermail : contains all mail waiting for users
[maildir]/listmail : contains all mail of mailing lists

-- Loglevels :

0. System
1. Critical
2. Error
4. Warning
5. Notice
7. Activity
8. Unintresting activity
9. Debug

About

A simple Python mail server. Supports SMTP and POP3

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages