You are not supplying the necessary options: -m and
--query_key.
You can set it by command line parameter or in
/etc/perdition/perdition.conf (maybe /etc/defaults too)
Hi Gustavo,
Please advise how to set them on /etc/default/perdition.
cat /etc/default/perdition
######################################################################
# /etc/sysconfig/perdition (RPM based systems)
# /etc/default/perdition (Debian)
#
# Run time configuration parameters for perdition
######################################################################
# Run perdition
# Set to "yes" to run perdition
# Set to any other value to not run perdition
RUN_PERDITION=yes
# Command line parameters to pass to perdition when run in any mode.
# This is in addition to any mode specific flags.
# That is, it is in addtion to any command line options supplied
# by POP3_FLAGS, POP3S_FLAGS, IMAP4_FLAGS or IMAP4S_FLAGS
#FLAGS=
# Run an instance of perdition in POP3 mode
# Set to "yes" to run this instance of perdition
# Set to any other valye to not run this instance of perdition
POP3=yes
#Command line parameters to pass to perdition when run in POP3 mode
POP3_FLAGS=
# Run an instance of perdition in POP3S mode
# Set to "yes" to run this instance of perdition
# Set to any other valye to not run this instance of perdition
POP3S=yes
#Command line parameters to pass to perdition when run in POP3S mode
POP3S_FLAGS=
# Run an instance of perdition in IMAP4 mode
# Set to "yes" to run this instance of perdition
# Set to any other valye to not run this instance of perdition
IMAP4=yes
#Command line parameters to pass to perdition when run in IMAP4 mode
IMAP4_FLAGS=
# Run an instance of perdition in IMAP4S mode
# Set to "yes" to run this instance of perdition
# Set to any other valye to not run this instance of perdition
IMAP4S=yes
#Command line parameters to pass to perdition when run in IMAP4S mode
IMAP4S_FLAGS=
* end *
TIA
B.R.
Stephen L
> For some
reason I was thinking about the hints I gave you and
> realized
> I made a mistake. I forgot to mention that your client needs to
use
> the domain while authenticating. So the test
would be:
>
> $ echo "tag login username@domain password" | nc perdition_host
143
>
> Without the domain (as I had written) perdition cannot resolve
which
server to
connect.
Tried again.
xen11:~# /etc/init.d/perdition restart
Stopped /usr/sbin/perdition.pop3 (pid 2878).
No /usr/sbin/perdition.pop3s found running; none killed.
No /usr/sbin/perdition.imap4 found running; none killed.
No /usr/sbin/perdition.imaps found running; none killed.
/usr/sbin/perdition.pop3 already running.
Starting /usr/sbin/perdition.pop3s...
Starting /usr/sbin/perdition.imap4...
Starting /usr/sbin/perdition.imaps...
xen11:~# echo "tag login satimis(a)satimis.com x10satimis" | nc
xen11.satimis.com 143
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE
THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5
AUTH=CRAM-SHA1 IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready.
Copyright 1998-2005 Double Precision, Inc. See COPYING for
distribution information.
tag NO Login failed.
Hanging here. I have to exit it manually with [Ctrl]+c
xen11:~# tail /var/log/mail.log
Dec 3 14:37:01 xen11 imapd: LOGIN: ip=[::ffff:192.168.0.211],
username=satimis(a)satimis.com
Dec 3 14:37:01 xen11 imapd: LOGIN: ip=[::ffff:192.168.0.211],
password=mypasswd
Dec 3 14:37:01 xen11 authdaemond: received auth request,
service=imap,
authtype=login
Dec 3 14:37:01 xen11 authdaemond: authmysql: trying this module
Dec 3 14:37:01 xen11 authdaemond: SQL query: SELECT id, "", clear,
uid, gid, home, concat(home,'/',maildir), "", name, "" FROM
users
WHERE
id = "satimis(a)satimis.com" AND
(enabled=1)
Dec 3 14:37:01 xen11 authdaemond: supplied password does not match
clearpasswd
Dec 3 14:37:01 xen11 authdaemond: authmysql: REJECT - try next
module
Dec 3 14:37:01 xen11 authdaemond: FAIL, all
modules rejected
Dec 3 14:37:02 xen11 imapd: LOGIN FAILED,
user=satimis(a)satimis.com,
ip=[::ffff:192.168.0.211]
Dec 3 14:37:20 xen11 imapd: Disconnected,
ip=[::ffff:192.168.0.211],
time=19
Still fail.
B.R.
Stephen L
> On Wed, Dec 3, 2008 at 15:49, Gustavo Luiz Duarte
> <gustavold(a)gmail.com> wrote:
> > On Wed, Dec 3, 2008 at 15:27, Stephen Liu <satimis(a)yahoo.com>
> wrote:
> >>
> >> --- Gustavo Luiz Duarte <gustavold(a)gmail.com> wrote:
> >>
> >>> On Wed, Dec 3, 2008 at 12:05, Stephen Liu <satimis(a)yahoo.com>
> wrote:
> >>> > Hi Gustavo,
> >>> >
> >>> >
> >>> > I'll make 2 tests;
> >>> >
> >>> >
> >>> > 1)
> >>> > test1 - USING TEXT FILE
> >>> >
> >>> >
> >>> > 2)
> >>> > test2 - USING MYSQL
> >>> >
> >>> >
> >>> > I have cloned an image of the routing mail server for test2.
> Now
> >>> > proceed test1 first.
> >>> >
> >>> >
> >>> > --- Gustavo Luiz Duarte <gustavold(a)gmail.com> wrote:
> >>> >
> >>> >> Hi Stephen,
> >>> >>
> >>> >> You could use the transport table if the string
"smtp:"
wasn't
> >>> there.
> >>> >> Do you really want to use mysql for the lookup? If you have
> only 3
> >>> >> domain you could use a text file.
> >>> >>
> >>> >> USING TEXT FILE:
> >>> >> $ cat << END > /etc/perdition_lookup.txt
> >>> >> satimis.dnsalias.com:192.168.0.209
> >>> >> satimis.changeip.net:192.168.0.208
> >>> >> satimis.com:192.168.0.210
> >>> >> END
> >>> >>
> >>> >> $ makegdbm /etc/perdition_lookup.gdbm.db <
> >>> /etc/perdition_lookup.txt
> >>> >>
> >>> >> $ perdition -m /etc/perdition_lookup.gdbm.db --query_key
"\d"
> >>> >
> >>> >
> >>> > Package installed - perdition-mysql
> >>> >
> >>> >
> >>> > # apt-cache policy perdition-mysql
> >>> > perdition-mysql:
> >>> > Installed: 1.17-7etch1
> >>> > Candidate: 1.17-7etch1
> >>> > Version table:
> >>> > *** 1.17-7etch1 0
> >>> > 500
http://ftp.au.debian.org etch/main Packages
> >>> > 500
http://security.debian.org stable/updates/main
> Packages
> >>> > 100 /var/lib/dpkg/status
> >>> >
> >>> >
> >>> > # cat << END > /etc/perdition_lookup.txt
> >>> >> satimis.dnsalias.com:192.168.0.209
> >>> >> satimis.changeip.net:192.168.0.208
> >>> >> satimis.com:192.168.0.210
> >>> >> END
> >>> >
> >>> >
> >>> > # which makegdbm
> >>> > /usr/bin/makegdbm
> >>> >
> >>> >
> >>> > # which perdition
> >>> > /usr/sbin/perdition
> >>> >
> >>> >
> >>> > # makegdbm /etc/perdition_lookup.gdbm.db <
> >>> /etc/perdition_lookup.txt
> >>> >
> >>> > # perdition -m /etc/perdition_lookup.gdbm.db --query_key
"\d"
> >>> > both without complaint
> >>> >
> >>> >
> >>> > Now I haven't figured out how to test perdition. There are
2
> >>> databases
> >>> > running on this routing mail server, MySQL maildb and
> >>> > perdition_lookup.gdbm.db. Do I need to stop MySQL maildb to
> test
> >>> > perdition? How can the remote mail clients connect their
mail
> >>> servers?
> >>> > What server settings shall I use? Please shed me some
light.
> TIA
> >>>
> >>> No need for stopping you MySQL.
> >>>
> >>> If everything is wright (I haven't tested, I can have skipped
> >>> something), you can point your mail clients to the hostname
where
> >>> perdition is installed and use
it normally.
> >>
> >>
> >> Sorry I can't resolve how can the mail client (Evolution) find
its
> >> server over Internet with following
settings;
> >
> > The mail client doesn't know wich server to use. It always use
the
> > routing server. The routing server
redirects it to the correct
imap
> > server. Make sure your are using the
right protocol imap4 or
> imap4s.
> >
> >>
> >> Server Type: IMAP
> >>
> >> Server :
xen11.satimis.com (hostname of the routing mail server
> where
> >> perdition is running
> >>
> >> User: satimis
> >>
> >>
> >> satimis is user of
satimis.com,
satimis.changeip.net and
> >>
satimis.dnsalias.com as well as user of the routing mail
server,
> >>
xen11.satimis.com
> >>
> >>
> >> I tried it without success.
> >>
> >>
> >>> Note that perdition's default protocol is pop3. To use imap
suply
> the
> >>> option -P IMAP4
> >>
> >>
> >> xen11:~# /etc/init.d/perdition start
> >> /usr/sbin/perdition.pop3 already running.
> >> Starting /usr/sbin/perdition.pop3s...
> >> Starting /usr/sbin/perdition.imap4...
> >> Starting /usr/sbin/perdition.imaps...
> >
> > How are you configuring perdition? Have you modified your
> > /etc/init.d/perdition script to contain the correct parameters?
> >
> >>
> >>
> >> xen11:~# hostname
> >>
xen11.satimis.com
> >>
> >>
> >> pop3 is already running. I have to manually run
> /etc/init.d/perdition
> >> to start pop3s, imap4 and imaps
> >>
> >>
> >>> You can use nc to test it:
> >>> $ echo "tag login username password" | nc perdition_host 143
> >>> In username and password you use valid username and password
for
> your
> >>> real imap server.
> >>
> >>
> >> I suppose running above command on the routing mail server
where
> >> perdition is installed.
> >>
> >>
> >> # echo "tag login satimis mypassword" | nc
xen11.satimis.com
143
> >> * OK [CAPABILITY IMAP4rev1 UIDPLUS
CHILDREN NAMESPACE
> >> THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA
AUTH=CRAM-MD5
> >> AUTH=CRAM-SHA1 IDLE ACL ACL2=UNION
STARTTLS] Courier-IMAP
ready.
> >> Copyright 1998-2005 Double
Precision, Inc. See COPYING
> fordistribution
> >> information.
> >> tag NO Login failed.
> >>
> >>
> >>> For pop3:
> >>> $ echo -e "user username\npass password | nc perdition_host
110
> >>
> >> xen11:~# echo -e "user satimis\npass x11satimis | nc
>
xen11.satimis.com
> >> 110
> >>>
> >> waiting for input
> >
> > You can look at perdition logs to find information about what is
> going on.
> >
> >>
> >>
> >>> No special configuration is need for your pop/imap servers.
Just
> >>> assure that they are listening
on standard ports.
> >>
> >>
> >> I have only ONE external IP. All ports are forwarded to the
> routing
> >> mail server except port 53.
> >>
> >>
> >> B.R.
> >> Stephen L
> >>
> >>
> >>
> >>> []'s
> >>> Gustavo Duarte
> >>>
> >>> >
> >>> >
> >>> > B.R.
> >>> > Stephen
> >>> >
> >>> >
> >>> >
> >>> >
> >>> >
> >>> >
> >>> >
> >>> >>
> >>> >> USING MYSQL:
> >>> >> You have some alternatives:
> >>> >> 1. Continue with your tblPerdition and populate it, so that
> user
> >>> >> column has the domain, hostname column has the localIP and
> port
> >>> >> column
> >>> >> you leave empty (supposing your real pop/imap servers
listen
> to
> >>> >> standard ports).
> >>> >>
> >>> >> Then you would do (supposing you have mysql perdition
library
> in
> >>> >> /usr/lib):
> >>> >>
> >>> >> perdition -M /usr/lib/libperditiondb_mysql.so.0 --query_key
> "\d"
> >>> -m
> >>> >>
>
"<dbhost>:<dbport>:dbPerdition:tblPerdition:perdition:perdition"
> >>> >>
> >>> >> (substituting <dbhost> and <dbport> by you db
hostname and
> port)
> >>> >>
> >>> >>
> >>> >> 2. Modify your transport table so that the string smtp and
> localIP
> >>> >> are
> >>> >> in diferent columns. Then you create a view concatenating
them
> for
> >>> >> the
> >>> >> postfix query. A bit more complicated but easier to
maintain
> when
> >>> you
> >>> >> have lots of domains and servers.
> >>> >>
> >>> >> []'s
> >>> >> Gustavo Duarte
> >>> >>
> >>> >> On Wed, Dec 3, 2008 at 02:28, Stephen Liu
<satimis(a)yahoo.com>
> >>> wrote:
> >>> >> > Hi Gustavo,
> >>> >> >
> >>> >> >
> >>> >> >> The URL I sent you has information about using mysql
as
> lookup
> >>> >> >> library:
> >>> >> >>
http://www.vergenet.net/linux/perdition/perditiondb.5.shtml
> >>> >> >
> >>> >> >
> >>> >> > I suppose you're referring to following section;
> >>> >> >
> >>> >> >
> >>> >> > MYSQL
> >>> >> > This map library can be used by specifying the full path
to
> the
> >>> >> library
> >>> >> > using the -M|--map_library command line option or
> configuration
> >>> >> file
> >>> >> > option.
> >>> >> >
> >>> >> > E.g.
> >>> >> > perdition -M /usr/lib/libperditiondb_mysql.so.0
> >>> >> > ......
> >>> >> >
> >>> >> >
> >>> >> > I'll start from there.
> >>> >> >
> >>> >> >
> >>> >> > I suppose the name of this database is
"dbPerdition" to
be
> >>> created
> >>> >> on
> >>> >> > MySQL
> >>> >> >
> >>> >> >
> >>> >> > mysql> create database dbPerdition;
> >>> >> >
> >>> >> >
> >>> >> > mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
> >>> >> > -> ON dbPerdition.* TO 'perdition'
IDENTIFIED by
> 'perdition';
> >>> >> >
> >>> >> > the 1st "perdition" on above second line is
"database
user".
> >>> The
> >>> >> 2nd
> >>> >> > "perdition" is "database password".
> >>> >> >
> >>> >> >
> >>> >> > mysql> CREATE TABLE `tblPerdition` (
> >>> >> > -> `user` varchar(128), null '' default
'',
> >>> >> > -> `servername` varchar(255) null '' default
'',
> >>> >> > -> `port` varchar(8) YES NULL,
> >>> >> > -> PRIMARY KEY (`user`),
> >>> >> > -> ) ;
> >>> >> >
> >>> >> >
> >>> >> > Afterwards I'll edit data on 'tblPerdition"
table.
> >>> >> >
> >>> >> >
> >>> >> >> The table you've shown doesn't have
information about
the
>> >> >> hostnames/localIPs. Where is
it? In the transport table?
>> >> >
>> >> >
>> >> > Yes.
>> >> >
>> >> > mysql> SELECT * from transport;
>> >> >
>> >>
>> >
>>
>