Servizio ODMR / ATRN
SERVER:
Creazione database
mysql -p <<EOFile
drop database odmr;
create database odmr;
use odmr;
CREATE TABLE acct (
user varchar(30) NOT NULL default '',
date int(10) unsigned NOT NULL default '0',
b_in int(10) unsigned NOT NULL default '0',
b_out int(10) unsigned NOT NULL default '0',
PRIMARY KEY (user,date)
) TYPE=MyISAM;
CREATE TABLE domain (
domain varchar(64) NOT NULL default '',
user varchar(30) NOT NULL default '',
PRIMARY KEY (domain),
KEY user (user)
) TYPE=MyISAM;
INSERT INTO domain VALUES ('marzottospa.com', 'marzottospa.com');
CREATE TABLE user (
user varchar(30) NOT NULL default '',
pass varchar(15) NOT NULL default '',
PRIMARY KEY (user)
) TYPE=MyISAM;
INSERT INTO user VALUES ('marzottospa.com', 'ottozram');
EOFile
Installazione Demone odmrd
cd /files/src && \ wget http://plonk.de/sw/odmr/odmrd09rc6.tar.gz && \ mkdir odmrd09rc6 && \ cd odmrd09rc6 && \ tar xvzf ../odmrd09rc6.tar.gz && \ cp odmrd-09rc6.pl /root/bin/odmrd && \ chmod 755 /root/bin/odmrd \ cp odmrd.conf /etc && \ wget http://plonk.de/sw/odmr/odmrspool.pl && \ cp odmrspool.pl /root/bin && \ chmod 755 /root/bin/odmrspool.pl && \ cd .. && \ rm -rf odmr* && \ adduser --system odmr && \ addgroup --system odmr && \ echo SETUP DONE !
Attivazione demone in inetd
vi /etc/inetd.conf: ... odmr stream tcp nowait odmr /root/bin/odmrd odmrd ...
Definizione servizio odmr in services
vi /etc/services: ... odmr 366/tcp # On Demand Mail Relay Protocol ...
Modifica configurazione demone odmrd
vi /etc/odmrd.conf
... debug 1 mysql_user root # nome utente mysql per accesso al database odmr mysql_pass thepass # password utente mysql standalone 0 ...
Creazione directory di spool odmr
mkdir -p /var/spool/odmr && \ chown odmr:odmr /var/spool/odmr
Installazione librerie Perl necessarie
apt-get install libdigest-hmac-perl
Riavvio inetd e verifica ascolto demone:
/etc/init.d/inetd restart
netstat -anp | grep 366 tcp 0 0 0.0.0.0:366 0.0.0.0:* LISTEN 13635/inetd
Verifica risposta demone odmr
telnet localhost 366 Trying 127.0.0.1... Connected to qda. Escape character is '^]'. 220 qda odmrd v0.9rc6 ODMR service ready quit 221 have a nice day Connection closed by foreign host.
Verifica autenticazione con fetchmail
apt-get install fetchmail
fetchmail --proto odmr --fetchdomains marzottospa.com --verbose --username marzottospa.com localhost Enter password for marzottospa.com@localhost: fetchmail: 5.9.11 querying localhost (protocol ODMR) at Mon Apr 4 16:42:28 2005: poll started fetchmail: SMTP< 220 qda odmrd v0.9rc6 ODMR service ready fetchmail: SMTP> EHLO localhost fetchmail: SMTP< 250-qda Hello qda [127.0.0.1:54143] fetchmail: SMTP< 250-AUTH CRAM-MD5 fetchmail: SMTP< 250 ATRN fetchmail: ODMR> AUTH CRAM-MD5 fetchmail: ODMR< 334 PDE2NzkuNjc3Mjk2Njk4MzMuNTQ1MC4xMTEyNjI1NzQ4QHFkYT4= fetchmail: ODMR> bWFyem90dG9zcGEuY29tIDJiNjhlMTY2YmFiZjE1Y2FhZTA1ZTVmODAyOWQ5NjU2 fetchmail: SMTP< 235 authenticated marzottospa.com fetchmail: ODMR> ATRN marzottospa.com fetchmail: ODMR< 453 no mail waiting fetchmail: You have no mail. fetchmail: ODMR> QUIT fetchmail: SMTP< 221 have a nice day fetchmail: 5.9.11 querying localhost (protocol ODMR) at Mon Apr 4 16:42:28 2005: poll completed fetchmail: normal termination, status 0
Abilitazione trasporto odmr in Postfix
vi /etc/postfix/master.cf
...
odmr unix - n n - - pipe
flags=h. user=odmr:odmr eol=\r\n argv=/root/bin/odmrspool.pl -f ${sender} -t ${nexthop} ${recipient}
...
Definizione domini da gestire in odmr in postfix
vi /etc/postfix/transport
... marzottospa.com odmr: ...
ATTENZIONE: BISOGNA CHE CI SIA UN UTENTE CON DOMINIO LEMAN.IT INSERITO NEL DATABASE POSTFIX, CHE NON ABBIA I FLAG EMAIL E ALIAS ATTIVATI, E CHE ABBIA ATTIVATO IL FLAG DI RELAY
Compilazione transport map
postmap /etc/postfix/transport
/etc/init.d/postfix restart
Provare mandare una email di prova a localhost:
telnet localhost 25 Trying 127.0.0.1... Connected to qda. Escape character is '^]'. 220 fire.qdatainformatica.com ESMTP Postfix (Debian/GNU) helo p 250 fire.qdatainformatica.com mail from: gabriele@rvmgroup.it 250 Ok rcpt to: ennio.lore@leman.it 250 Ok data 354 End data with <CR><LF>.<CR><LF> subject: test 1123 test1123 . 250 Ok: queued as C552B104442 quit 221 Bye Connection closed by foreign host.
tail /var/log/mail.log | grep odmr May 23 11:23:33 fire postfix/pipe[14085]: ED82E105013: to=<ennio.lore@leman.it>, relay=odmr, delay=3, status=sent (leman.it)
Verificare che ci sia la mail in spool
ls /var/spool/odmr/leman.it/ total 12 drwx------ 2 odmr odmr 4096 May 23 11:23 . drwxr-xr-x 4 odmr odmr 4096 May 23 11:23 .. -rw------- 1 odmr odmr 936 May 23 11:23 msg.1116840213.14086.5600
CLIENT
Installare fetchmail
apt-get install fetchmail
Da server destinazione prendere posta:
fetchmail --proto odmr --fetchdomains leman.it --verbose --username leman.it fire.qdatainformatica.com
Enter password for leman.it@fire.qdatainformatica.com:
fetchmail: 6.2.5 querying fire.qdatainformatica.com (protocol ODMR) at Mon 23 Ma y 2005 11:53:48 AM CEST: poll started
fetchmail: SMTP< 220 fire.qdatainformatica.com odmrd v0.9rc6 ODMR service ready
fetchmail: SMTP> EHLO localhost
fetchmail: SMTP< 250-fire.qdatainformatica.com Hello ppp-191-17.24-151.libero.it [151.24.17.191:10200]
fetchmail: SMTP< 250-AUTH CRAM-MD5
fetchmail: SMTP< 250 ATRN
fetchmail: ODMR> AUTH CRAM-MD5
fetchmail: ODMR< 334 PDU3NTIuMTYzNjQwMDgyMTIuMTQzODUuMTExNjg0MjAyNEBmaXJlLnFkYXR haW5mb3JtYXRpY2EuY29tPg==
fetchmail: ODMR> bGVtYW4uaXQgOTE5M2M5YjM1ZjgxOGQ5MzBlNjVkMzFhOTJlYzFkMzg=
fetchmail: SMTP< 235 authenticated leman.it
fetchmail: ODMR> ATRN leman.it
fetchmail: ODMR< 250 ok, turnaround now
fetchmail: Turnaround now...
fetchmail: ODMR> 220 fire.leman.priv ESMTP Postfix (Debian/GNU)
fetchmail: ODMR< EHLO fire.qdatainformatica.com
fetchmail: ODMR> 250-fire.leman.priv
fetchmail: ODMR> 250-PIPELINING
fetchmail: ODMR> 250-SIZE 10240000
fetchmail: ODMR> 250-VRFY
fetchmail: ODMR> 250-ETRN
fetchmail: ODMR> 250-AUTH NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
fetchmail: ODMR> 250-AUTH=NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
fetchmail: ODMR> 250 8BITMIME
fetchmail: ODMR< MAIL FROM:<gabriele@rvmgroup.it> SIZE=936
fetchmail: ODMR> 250 Ok
fetchmail: ODMR< RCPT TO: <ennio.lore@leman.it>
fetchmail: ODMR> 250 Ok
fetchmail: ODMR< DATA
fetchmail: ODMR> 354 End data with <CR><LF>.<CR><LF>
fetchmail: receiving message data
fetchmail: ODMR> 250 Ok: queued as 2EF8F6401B7
fetchmail: ODMR< RSET
fetchmail: ODMR> 250 Ok
fetchmail: ODMR< QUIT
fetchmail: ODMR> 221 Bye
fetchmail: Polling fire.qdatainformatica.com
fetchmail: 6.2.5 querying fire.qdatainformatica.com (protocol ODMR) at Mon 23 Ma y 2005 11:53:50 AM CEST: poll completed
fetchmail: normal termination, status 0
== Creazione file configurazione fetchmailrc ==
cat > /etc/fetchmailrc <<EOFile
set daemon 600
poll fire.qdatainformatica.com with protocol odmr
user leman.it with pass namel
fetchdomains leman.it
smtphost 127.0.0.1
EOFile
== Debug di fetchmail ==
<pre>
/etc/init.d/fetchmail debug-run
/etc/init.d/fetchmail: Initiating debug run of system-wide fetchmail service...
/etc/init.d/fetchmail: script will be run in debug mode, all output to forced to
/etc/init.d/fetchmail: stdout. This is not enough to debug failures that only
/etc/init.d/fetchmail: happen in daemon mode.
/etc/init.d/fetchmail: You might want to direct output to a file, and tail -f it.
/etc/init.d/fetchmail: Stopping the service...
Stopping mail retrieval agent: fetchmail.
/etc/init.d/fetchmail: exit status of service stop was: 0
/etc/init.d/fetchmail: RUNUSER is fetchmail
/etc/init.d/fetchmail: OPTIONS would be -f /etc/fetchmailrc --syslog -i /var/mail/.fetchmail-UIDL-cache
/etc/init.d/fetchmail: Starting service in nodetach mode, hit ^C (SIGINT/intr) to finish run...
fetchmail: starting fetchmail 6.2.5 daemon
fetchmail: 6.2.5 querying fire.qdatainformatica.com (protocol ODMR) at Mon 23 May 2005 12:04:36 PM CEST: poll started
fetchmail: SMTP< 220 fire.qdatainformatica.com odmrd v0.9rc6 ODMR service ready
fetchmail: selecting or re-polling default folder
fetchmail: SMTP> EHLO fire.leman.priv
fetchmail: SMTP< 250-fire.qdatainformatica.com Hello ppp-191-17.24-151.libero.it [151.24.17.191:10207]
fetchmail: SMTP< 250-AUTH CRAM-MD5
fetchmail: SMTP< 250 ATRN
fetchmail: ODMR> AUTH CRAM-MD5
fetchmail: ODMR< 334 PDgwNjcuMTI3NjU5ODU3NTEuMTQ0OTAuMTExNjg0MjY3MkBmaXJlLnFkYXRhaW5mb3JtYXRpY2EuY29tPg==
fetchmail: decoded as <8067.12765985751.14490.1116842672@fire.qdatainformatica.com>
fetchmail: ODMR> bGVtYW4uaXQgOWIyNjE2MDg5NGE5OTJiOTA2MDAwMzQxMGRjODFiNTA=
fetchmail: SMTP< 235 authenticated leman.it
fetchmail: ODMR> ATRN leman.it
fetchmail: ODMR< 453 no mail waiting
fetchmail: You have no mail.
fetchmail: ODMR> QUIT
fetchmail: SMTP< 221 have a nice day
fetchmail: 6.2.5 querying fire.qdatainformatica.com (protocol ODMR) at Mon 23 May 2005 12:04:37 PM CEST: poll completed
fetchmail: not swapping UID lists, no UIDs seen this query
fetchmail: Deleting fetchids file.
fetchmail: sleeping at Mon 23 May 2005 12:04:37 PM CEST
Abilitazione fetchmail ogni "set daemon secondi
/etc/init.d/fetchmail start
SERVER: se ci sono email in coda per precedente relay, flushare la coda e verranno messe in odmr:
postqueue -f postqueue -p
dopo un pò è ok:
postqueue -p