Erinevus lehekülje "Postfix + courier + mysql" redaktsioonide vahel

Allikas: Kuutõrvaja
 
(ei näidata sama kasutaja 22 vahepealset redaktsiooni)
1. rida: 1. rida:
 +
===sissejuhatus===
 +
 +
Mailisüsteem kipub sageli üle pea kasvama. Haldus käsureal muutub tülikaks /või tekib
 +
soov kasutada paraleelselt mitut mailiserverit. Aitab näiteks lihtsalt
 +
paigutada kasutajad mysql'i ning kasutada veebi administreerimisliidest.
 +
 +
Süsteem näeb välja selline ,et faile hoitakse populaarses maildir http://en.wikipedia.org/wiki/Maildir formaadis kuid
 +
kasutajaid loeb postfix mysql baasist.
 +
 
===install===
 
===install===
  
7. rida: 16. rida:
  
 
ning vaatame ,et mysql toega.  
 
ning vaatame ,et mysql toega.  
 
gentoos võime kirjutada make.conf'i use reale mysql ning siis
 
 
emerge postfix
 
  
 
seejärel paigaldame courieri ning mysql'i
 
seejärel paigaldame courieri ning mysql'i
23. rida: 28. rida:
 
main.cf
 
main.cf
  
queue_directory = /var/spool/postfix
+
  home_mailbox = .maildir/  
command_directory = /usr/local/sbin
 
daemon_directory = /usr/local/libexec/postfix
 
mail_owner = postfix
 
unknown_local_recipient_reject_code = 550
 
debug_peer_level = 2
 
sendmail_path = /usr/local/sbin/sendmail
 
newaliases_path = /usr/local/bin/newaliases
 
mailq_path = /usr/local/bin/mailq
 
html_directory = /usr/share/doc/postfix-2.2.10/html
 
manpage_directory = /usr/local/man
 
sample_directory = /usr/local/etc/postfix
 
readme_directory = no
 
  home_mailbox = .maildir/
 
soft_bounce = yes
 
myhostname = mail.example.ee
 
mydomain = mail.example.ee
 
 
   
 
   
  unknown_local_recipient_reject_code = 550
+
  virtual_mailbox_base = '''/home/mail'''
mynetworks_style = host
+
  virtual_gid_maps = static:9009
+
  virtual_uid_maps = static:9009
mail_spool_directory = /var/mail
+
  virtual_minimum_uid = 9009
  smtpd_banner = $myhostname ESMTP, NO SPAM PLEASE :D
+
  virtual_create_maildirsize = yes
  debug_peer_level = 2
 
   
 
  config_directory = /usr/local/etc/postfix
 
 
   
 
   
 
  virtual_alias_maps = mysql:$config_directory/mysql_virtual_alias_maps.cf
 
  virtual_alias_maps = mysql:$config_directory/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:9009
 
 
virtual_mailbox_base = /home/mail
 
 
  virtual_mailbox_domains = mysql:$config_directory/mysql_virtual_domains_maps.cf
 
  virtual_mailbox_domains = mysql:$config_directory/mysql_virtual_domains_maps.cf
 
  virtual_mailbox_maps = mysql:$config_directory/mysql_virtual_mailbox_maps.cf
 
  virtual_mailbox_maps = mysql:$config_directory/mysql_virtual_mailbox_maps.cf
 +
virtual_mailbox_limit_maps = mysql:$config_directory/mysql_virtual_mailbox_limit_maps.cf
 +
relay_domains = mysql:$config_directory/mysql_relay_domains_maps.cf
 
   
 
   
  virtual_uid_maps = static:9009
+
  # quota blokk
 
virtual_minimum_uid = 9009
 
 
virtual_uid_maps = static:9009
 
virtual_create_maildirsize = yes
 
 
 
  virtual_mailbox_extended = yes
 
  virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:$config_directory/mysql_virtual_mailbox_limit_maps.cf
 
 
  virtual_mailbox_limit_override = yes
 
  virtual_mailbox_limit_override = yes
 
  virtual_maildir_limit_message = Sorry, users quota limit has been exceeded.
 
  virtual_maildir_limit_message = Sorry, users quota limit has been exceeded.
 
  virtual_overquota_bounce = yes
 
  virtual_overquota_bounce = yes
 
relay_domains = mysql:$config_directory/mysql_relay_domains_maps.cf
 
 
setgid_group = maildrop
 
  
 +
Loome kausta '''/var/mail''' ja anname õigused ,et courier pääseks sinna ligi.
  
 
+
'''mysql_virtual_alias_maps.cf'''
mysql_virtual_alias_maps.cf
 
  
 
  user = mail
 
  user = mail
84. rida: 58. rida:
 
  query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
 
  query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
  
 
+
'''mysql_relay_domains_maps.cf'''
mysql_relay_domains_maps.cf
 
  
 
  user = mail
 
  user = mail
93. rida: 66. rida:
 
  query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '1' AND active = '1'
 
  query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '1' AND active = '1'
  
mysql_virtual_mailbox_limit_maps.cf
+
quota kontroll
 +
 
 +
'''mysql_virtual_mailbox_limit_maps.cf'''
  
 
  user = mail
 
  user = mail
101. rida: 76. rida:
 
  query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
 
  query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
  
mysql_relay_domains_maps.cf
+
'''mysql_relay_domains_maps.cf'''
  
 
  user = mail
 
  user = mail
109. rida: 84. rida:
 
  query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '1' AND active = '1'
 
  query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '1' AND active = '1'
  
===mysql basi seadistus===
+
===mysql baasi seadistus===
 +
 
 +
tekitame baasi mail ja tekiame sinna struktuuri võime kasutada järgnevalt äratoodud dump'i. Juhin
 +
veel tähelepanu ,et tabelid nagu admin, domain_admins, log ja vacation on vajalikud
 +
vaid postfixadmini jaoks. Kui ei ole plaanis neid kasutada võib jätta välja.
 +
 
 +
--
 +
-- Table structure for table `admin`
 +
--
 +
 +
CREATE TABLE `admin` (
 +
  `username` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `password` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
 +
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
 +
  `active` tinyint(1) NOT NULL default '1',
 +
  PRIMARY KEY  (`username`),
 +
  KEY `username` (`username`)
 +
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci COMMENT='Postfix Admin - Virtual  Admins';
 +
 +
-- --------------------------------------------------------
 +
 +
--
 +
-- Table structure for table `alias`
 +
--
 +
 +
CREATE TABLE `alias` (
 +
  `address` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `goto` text collate utf8_estonian_ci NOT NULL,
 +
  `domain` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
 +
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
 +
  `active` tinyint(1) NOT NULL default '1',
 +
  PRIMARY KEY  (`address`),
 +
  KEY `address` (`address`)
 +
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci COMMENT='Postfix Admin - Virtual  Aliases';
 +
 +
-- --------------------------------------------------------
 +
 +
--
 +
-- Table structure for table `domain`
 +
--
 +
 +
CREATE TABLE `domain` (
 +
  `domain` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `description` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `aliases` int(10) NOT NULL default '0',
 +
  `mailboxes` int(10) NOT NULL default '0',
 +
  `maxquota` int(10) NOT NULL default '0',
 +
  `transport` varchar(255) collate utf8_estonian_ci default NULL,
 +
  `backupmx` tinyint(1) NOT NULL default '0',
 +
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
 +
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
 +
  `active` tinyint(1) NOT NULL default '1',
 +
  PRIMARY KEY  (`domain`),
 +
  KEY `domain` (`domain`)
 +
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci COMMENT='Postfix Admin - Virtual  Domains';
 +
 +
-- --------------------------------------------------------
 +
 +
--
 +
-- Table structure for table `domain_admins`
 +
--
 +
 +
CREATE TABLE `domain_admins` (
 +
  `username` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `domain` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
 +
  `active` tinyint(1) NOT NULL default '1',
 +
  KEY `username` (`username`)
 +
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci COMMENT='Postfix Admin - Domain  Admins';
 +
 +
-- --------------------------------------------------------
 +
 +
--
 +
-- Table structure for table `log`
 +
--
 +
 +
CREATE TABLE `log` (
 +
  `timestamp` datetime NOT NULL default '0000-00-00 00:00:00',
 +
  `username` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `domain` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `action` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `data` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  KEY `timestamp` (`timestamp`)
 +
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci COMMENT='Postfix Admin - Log';
 +
 +
-- --------------------------------------------------------
 +
 +
--
 +
-- Table structure for table `mailbox`
 +
--
 +
 +
CREATE TABLE `mailbox` (
 +
  `username` varchar(255) NOT NULL default '',
 +
  `password` varchar(255) NOT NULL default '',
 +
  `name` varchar(255) NOT NULL default '',
 +
  `maildir` varchar(255) NOT NULL default '',
 +
  `quota` int(10) NOT NULL default '0',
 +
  `domain` varchar(255) NOT NULL default '',
 +
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
 +
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
 +
  `uid` int(10) unsigned default '9009',
 +
  `gid` int(10) unsigned default '9009',
 +
  `active` tinyint(1) NOT NULL default '1',
 +
  PRIMARY KEY  (`username`),
 +
  KEY `username` (`username`)
 +
) ENGINE=InnoDB DEFAULT CHARSET=binary COMMENT='Postfix Admin - Virtual Mailboxes';
 +
 +
-- --------------------------------------------------------
 +
 +
--
 +
-- Table structure for table `vacation`
 +
--
 +
 +
CREATE TABLE `vacation` (
 +
  `email` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `subject` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `body` text collate utf8_estonian_ci NOT NULL,
 +
  `cache` text collate utf8_estonian_ci NOT NULL,
 +
  `domain` varchar(255) collate utf8_estonian_ci NOT NULL default '',
 +
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
 +
  `active` tinyint(1) NOT NULL default '1',
 +
  PRIMARY KEY  (`email`),
 +
  KEY `email` (`email`)
 +
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci COMMENT='Postfix Admin - Virtual  Vacation';
 +
 
 +
juhin tähelepanu sellele ,et read
 +
 
 +
mailbox tabelis
 +
 
 +
  `uid` int(10) unsigned default '9009',
 +
  `gid` int(10) unsigned default '9009',
 +
 
 +
pole näites lisatud ja see on omatehtud häkk kuna courieri uuem versuioon
 +
ootab vaikimisi uid/gid parameetreid samuti kuid postfixadmini käesolev versioon
 +
ei oska neid baasi kirjutada nii siis täidame selle automaatselt alati.
 +
 
 +
===courier-imap===
 +
 
 +
Freebsd's avame kaustas /usr/local/etc/authlib
 +
faili authmysqlrc
 +
 
 +
selle sisu peaks olema selline
 +
 
 +
MYSQL_CRYPT_PWFIELD    password
 +
MYSQL_DATABASE          '''mail'''
 +
MYSQL_LOGIN_FIELD      '''username'''
 +
MYSQL_PASSWORD          '''parool'''
 +
MYSQL_SERVER            '''localhost'''
 +
MYSQL_GID_FIELD        '9009'
 +
MYSQL_HOME_FIELD        '/home/mail'
 +
MYSQL_MAILDIR_FIELD    maildir
 +
MYSQL_NAME_FIELD        name
 +
MYSQL_OPT              0
 +
MYSQL_QUOTA_FIELD      quota
 +
MYSQL_UID_FIELD        '9009'
 +
MYSQL_USERNAME          mail
 +
MYSQL_USER_TABLE        mailbox
 +
 
 +
===postfixadmin===
 +
 
 +
Hangime viimase versiooni tarballi http://sourceforge.net/projects/postfixadmin/
 +
 
 +
[[Pilt:Posfixadminu.jpg]]
 +
 
 +
paigaldame apache ja php ning pakime postfixadmini lahti
 +
seadistame veebi kasutama loodud andmebaasi mail ning testime :]
 +
 
 +
Kui on vaja konvertida cyruselt ümber enda kirjad aitab utiliit lingil
  
tekitame baasi mail ja tekiame sinna struktuuri
+
http://www.madness.at/blog/projects/cyrus2courier.html

Viimane redaktsioon: 19. september 2009, kell 16:44

sissejuhatus

Mailisüsteem kipub sageli üle pea kasvama. Haldus käsureal muutub tülikaks /või tekib soov kasutada paraleelselt mitut mailiserverit. Aitab näiteks lihtsalt paigutada kasutajad mysql'i ning kasutada veebi administreerimisliidest.

Süsteem näeb välja selline ,et faile hoitakse populaarses maildir http://en.wikipedia.org/wiki/Maildir formaadis kuid kasutajaid loeb postfix mysql baasist.

install

paigaldame postfix tarkvara koos mysql toega selleks freebsd's

cd /usr/ports/mail/postfix && make install clean

ning vaatame ,et mysql toega.

seejärel paigaldame courieri ning mysql'i

cd /usr/portsw/mail/courier-imap && make install clean

mysql install ja seadistus on kirjas [mysql install]

postfix

main.cf

home_mailbox = .maildir/ 

virtual_mailbox_base = /home/mail
virtual_gid_maps = static:9009
virtual_uid_maps = static:9009 
virtual_minimum_uid = 9009
virtual_create_maildirsize = yes

virtual_alias_maps = mysql:$config_directory/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:$config_directory/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:$config_directory/mysql_virtual_mailbox_maps.cf
virtual_mailbox_limit_maps = mysql:$config_directory/mysql_virtual_mailbox_limit_maps.cf
relay_domains = mysql:$config_directory/mysql_relay_domains_maps.cf

# quota blokk
virtual_mailbox_extended = yes
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, users quota limit has been exceeded.
virtual_overquota_bounce = yes

Loome kausta /var/mail ja anname õigused ,et courier pääseks sinna ligi.

mysql_virtual_alias_maps.cf

user = mail
password = parool
hosts = localhost
dbname = mail
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

mysql_relay_domains_maps.cf

user = mail
password = parool
hosts = localhost
dbname = mail
query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '1' AND active = '1'

quota kontroll

mysql_virtual_mailbox_limit_maps.cf

user = mail
password = parool
hosts = localhost
dbname = mail
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'

mysql_relay_domains_maps.cf

user = mail
password = parool
hosts = localhost
dbname = mail
query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '1' AND active = '1'

mysql baasi seadistus

tekitame baasi mail ja tekiame sinna struktuuri võime kasutada järgnevalt äratoodud dump'i. Juhin veel tähelepanu ,et tabelid nagu admin, domain_admins, log ja vacation on vajalikud vaid postfixadmini jaoks. Kui ei ole plaanis neid kasutada võib jätta välja.

-- 
-- Table structure for table `admin`
-- 

CREATE TABLE `admin` (
  `username` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `password` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`username`),
  KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci COMMENT='Postfix Admin - Virtual  Admins';

-- --------------------------------------------------------

-- 
-- Table structure for table `alias`
-- 

CREATE TABLE `alias` (
  `address` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `goto` text collate utf8_estonian_ci NOT NULL,
  `domain` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`address`),
  KEY `address` (`address`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci COMMENT='Postfix Admin - Virtual   Aliases';

-- --------------------------------------------------------

-- 
-- Table structure for table `domain`
-- 

CREATE TABLE `domain` (
  `domain` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `description` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `aliases` int(10) NOT NULL default '0',
  `mailboxes` int(10) NOT NULL default '0',
  `maxquota` int(10) NOT NULL default '0',
  `transport` varchar(255) collate utf8_estonian_ci default NULL,
  `backupmx` tinyint(1) NOT NULL default '0',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`domain`),
  KEY `domain` (`domain`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci COMMENT='Postfix Admin - Virtual  Domains';

-- --------------------------------------------------------

-- 
-- Table structure for table `domain_admins`
--

CREATE TABLE `domain_admins` (
 `username` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `domain` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci COMMENT='Postfix Admin - Domain  Admins';

-- --------------------------------------------------------

-- 
-- Table structure for table `log`
-- 

CREATE TABLE `log` (
  `timestamp` datetime NOT NULL default '0000-00-00 00:00:00',
  `username` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `domain` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `action` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `data` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  KEY `timestamp` (`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci COMMENT='Postfix Admin - Log';

-- --------------------------------------------------------

-- 
-- Table structure for table `mailbox`
-- 

CREATE TABLE `mailbox` (
  `username` varchar(255) NOT NULL default ,
  `password` varchar(255) NOT NULL default ,
  `name` varchar(255) NOT NULL default ,
  `maildir` varchar(255) NOT NULL default ,
  `quota` int(10) NOT NULL default '0',
  `domain` varchar(255) NOT NULL default ,
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `uid` int(10) unsigned default '9009',
  `gid` int(10) unsigned default '9009',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`username`),
  KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=binary COMMENT='Postfix Admin - Virtual Mailboxes';

-- --------------------------------------------------------

-- 
-- Table structure for table `vacation`
-- 

CREATE TABLE `vacation` (
  `email` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `subject` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `body` text collate utf8_estonian_ci NOT NULL,
  `cache` text collate utf8_estonian_ci NOT NULL,
  `domain` varchar(255) collate utf8_estonian_ci NOT NULL default ,
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`email`),
  KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci COMMENT='Postfix Admin - Virtual  Vacation';

juhin tähelepanu sellele ,et read

mailbox tabelis

 `uid` int(10) unsigned default '9009',
 `gid` int(10) unsigned default '9009',

pole näites lisatud ja see on omatehtud häkk kuna courieri uuem versuioon ootab vaikimisi uid/gid parameetreid samuti kuid postfixadmini käesolev versioon ei oska neid baasi kirjutada nii siis täidame selle automaatselt alati.

courier-imap

Freebsd's avame kaustas /usr/local/etc/authlib faili authmysqlrc

selle sisu peaks olema selline

MYSQL_CRYPT_PWFIELD     password
MYSQL_DATABASE          mail
MYSQL_LOGIN_FIELD       username
MYSQL_PASSWORD          parool
MYSQL_SERVER            localhost
MYSQL_GID_FIELD         '9009'
MYSQL_HOME_FIELD        '/home/mail'
MYSQL_MAILDIR_FIELD     maildir
MYSQL_NAME_FIELD        name
MYSQL_OPT               0
MYSQL_QUOTA_FIELD      quota
MYSQL_UID_FIELD         '9009'
MYSQL_USERNAME          mail
MYSQL_USER_TABLE        mailbox

postfixadmin

Hangime viimase versiooni tarballi http://sourceforge.net/projects/postfixadmin/

Posfixadminu.jpg

paigaldame apache ja php ning pakime postfixadmini lahti seadistame veebi kasutama loodud andmebaasi mail ning testime :]

Kui on vaja konvertida cyruselt ümber enda kirjad aitab utiliit lingil

http://www.madness.at/blog/projects/cyrus2courier.html