Mail server srednje veličine, deo 5 – MailWatch

Čemu služi MailWatch? Za grafičko praćenje protoka mail poruka, u realnom vremenu, sa pretraživanjem.
Pošto koristi MySQL bazu, paziti kada se broj poruka u bazi približi 700.000, jer tada dolazi do velikog usporenja rada (zbog upisa poruka u bazu) i kašnjenja poruka, što se da rešiti bekapom i pražnjenjem baze (ali o tome u kasnijim postovima).

Šta su u startu potrebne stavke, da bi MailWatch mogao da se instalira :
MailScanner koji radi, podignut servis MySQL, Apache, PHP (sa MySQL i GD podrškom), a da bi MailScanner koristio bazu potreban je Perl-DBD-MySQL.

Takođe i podešavanje fajla /etc/php.ini :
short_open_tag = On
safe_mode = Off
register_globals = Off
magic_quotes_gpc = On
magic_quotes_runtime = Off
session.auto_start = 0
Sve stavke već postoje u php.ini fajlu, samo treba ispraviti vrednosti…..

Posle spuštanja (odavde) i razvijanja paketa, on se instalira iz foldera u koji je razvijen :
# mysql < create.sql Kreiranje nove baze za MailWatch
Ulazimo u MySQL, da bi podesili potrebna prava nad novokreiranom bazom :
# mysql
mysql> grant all on mailscanner.* to mailwatch@localhost identified by ‘moja-lozinka’;
mysql> grant file on *.* to mailwatch@localhost identified by ‘moja-lozinka’;
mysql> flush privileges;
mysql> exit

Sada treba zatvoriti MySQL (da root korisnik MySQL baze ima lozinku, i da ne postoje nalozi koji je nemaju) :
# mysqladmin -u root password “nova-lozinka” Postavljanje root MySQL lozinke
# mysql -u root -p
Enter password:
mysql> use mysql;
mysql> delete from user where password=””;
Paziti, ovde su ili dva obična navodnika jedan za drugim (bez blanko-a između), ili dva jednostruka navodnika, jedan za drugim.
mysql> select user,password from user; provera da nema više naloga bez lozinki
+———–+——————————————-+
| user | password |
+———–+——————————————-+
| root | *Ey6llk6D401EF872DD5BC6D700072770uui67A16 |
| mailwatch | *E6hF6D6D401EF872DD5wqaD70007277ii0CC3A99 |
+———–+——————————————-+
2 rows in set (0.00 sec)
mysql> exit

U MySQL bazi mailscanner dodati korisnika mailwatch, sa odgovarajućim pravima :
# mysql mailscanner -u mailwatch -p
MySQL komanda
Query OK, 1 row affected (0.00 sec)

Posle ovoga je potrebno pojedine fajlove MailWatch-a prebaciti na za to predviđena mesta.
Videti gde je DocumentRoot za Apache, kod mene je to /usr/share/squirrelmail
Tu kopirati mailscanner folder iz razvijenog mailwatch paketa.
Podešavanje prava za kopirane foldere :
/usr/share/squirrelmail vlasništva nad folderom mailscanner NIKAKO ne menjati!!!!
Pod folderom : /usr/share/squirrelmail/mailscanner podesiti prava za folder images :
drwxrwx— 3 root apache 4096 Nov 2 2005 images
Pod folderom : /usr/share/squirrelmail/mailscanner/images podesiti prava za folder cache :
drwxrwx— 2 root apache 4096 Nov 2 2005 cache

Takođe fajl xxx/mailwatchxxx/MailScanner_perl_scripts/MailWatch.pm kopirati u folder /usr/lib/MailScanner/MailScanner/CustomFunctions i izmeniti mu stavke :
my($db_user) = ‘mailwatch’;
my($db_pass) = ‘moja-lozinka’;

U folderu /usr/share/squirrelmail/mailscanner kopirati fajl conf.php.example u conf.php, i u njemu uraditi sledeće izmene :
// Database settings
define(DB_TYPE, ‘mysql’);
define(DB_USER, ‘mailwatch’);
define(DB_PASS, ‘moja-lozinka’);
define(DB_NAME, ‘mailscanner’);
…………
define(‘TIME_ZONE’, ‘Europe/Belgrade’);
…………
// Paths
define(MAILWATCH_HOME, ‘/usr/share/squirrelmail/mailscanner’);
………..
// Quarantine settings
define(QUARANTINE_USE_FLAG, true);
define(QUARANTINE_DAYS_TO_KEEP, 30);
define(QUARANTINE_MAIL_HOST, ‘11.12.13.14’);
define(QUARANTINE_FROM_ADDR, ‘postmaster@moj-domen.com’);
………..
// Display the inbound/outbound mail queue lengths
define(MAILQ, false);

Posle ovih svih promena obavezno resetovati server!

Dobar link za instalaciju MailWatch-a : link

Odličan link za celu proceduru.