Mail Server Installation

  • DBMail
  • Postfix
  • ClamSMTP
  • AfterLogic WebMail Pro
  • Zimbra
  • amavisd-new
  • spamassassin
  • clamav
  • pigeonhole
  • pigeonhole

Database vs. File-System
Database based mail server
FreeBSD 10: postfix, dovecot, Roundcube, amavisd-new, spamassassin, clamav, pigeonhole

migrating_from_qmail_vpopmail_sql
Importing mailboxes from vpopmail
dbmail + qmail + vpopmail + awk!!! 🙂

qmail

Life with qmail
QMail HOWTO fĂĽr FreeBSD
My Qmail installation guide
Installing qmail under FreeBSD
SMTP Authentication [Tutorial]
Setting up an SMTP service
Debian qmail Anleitung v1.2
qmail patches
Relaying with qmail (Environment Variable RELAYCLIENT)

TLS / Certificate

Using SMTP-TLS with qmail
My Qmail installation guide
Qmail-TLS patch
smtp-auth + qmail-tls (starttls) + forcetls patch for qmail

220 XXX.com ESMTP
ehlo user
250-XXX.com
250-STARTTLS
250-AUTH LOGIN PLAIN CRAM-MD5
250-PIPELINING
250 8BITMIME
starttls
454 TLS missing certificate: error:0200100D:system library:fopen:Permission denied (#4.3.0)
$ chown vpopmail:vchkpw /var/qmail/control/servercert.pem
220 XXX.com ESMTP
ehlo user
250-XXX.com
250-STARTTLS
250-AUTH LOGIN PLAIN CRAM-MD5
250-PIPELINING
250 8BITMIME
starttls
220 ready for tls
# Request
$ openssl req -new -nodes -out req.pem -keyout servercert.pem

# Sign
$ openssl req -new -x509 -nodes -out servercert.pem -days 366 -keyout servercert.pem
$ openssl ciphers > tlsclientciphers
$ openssl ciphers > tlsserverciphers

# Display certificate information
$ openssl x509 -text -noout -in servercert.pem

CheatSheet/OpenSSL
The Most Common OpenSSL Commands
OpenSSL usage tips and examples

qmail Toaster

tcp.smtp
Vpopmail – roaming users configuration

vpopmail

Vpopmail

A quick guide to vpopmail with MySQL
UCSPI-TCP MySQL patch

[root@te-clan /usr/ports/mail/qmail-tls]# pkg_info | grep mail
autorespond-2.0.5   Simple autoresponder for qmail
courier-authlib-vchkpw-0.59.3 Vpopmail/vchkpw support for the Courier authentication libr
courier-imap-4.1.3,1 IMAP (and POP3) server that provides access to Maildir mail
ezmlm-idx-0.40_4    Improved version of the ezmlm mailing list manager
p5-Email-Address-1.90.0 RFC 2822 Address Parsing and Creation
p5-Mail-DKIM-0.40   Perl5 module to process and/or create DKIM email
p5-Mail-SpamAssassin-3.3.2_8 A highly efficient mail filter for identifying spam
p5-Mail-Tools-2.12  Perl5 modules for dealing with Internet e-mail messages
qmail-qfilter-2.1_2 Front-end for qmail-queue to run messages through filters
qmail-tls-1.03.20021228_1 A SECURE, reliable, and FAST MTA for UNIX systems WITH TLS 
roundcube-0.2,1     Fully skinnable XHTML/CSS webmail written in PHP
vpopmail-devel-5.5.0_2 Easy virtual domain and authentication package for use with
[root@te-clan ~]# tcpserver -v
tcpserver: usage: tcpserver [ -1UXpPhHrRoOdDqQsSv ] [ -c limit ] [ -C [address[/len]:]limit ] [ -e name=var ] [ -x rules.cdb ] [ -B banner ] [ -g gid ] [ -u uid ] [ -b backlog ] [ -l localname ] [ -t timeout ] [ -n certfile ] host port program

[root@te-clan ~]# which tcpserver
/usr/local/bin/tcpserver

[root@te-clan ~]# readelf -s /usr/local/bin/tcpserver                
Symbol table '.dynsym' contains 144 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 00000000004025f4    40 FUNC    GLOBAL DEFAULT  UND waitpid
     2: 000000000050ef40    16 OBJECT  GLOBAL DEFAULT   20 ipl
     3: 000000000050fb90     4 OBJECT  GLOBAL DEFAULT   20 subgetoptpos
     4: 000000000050fba0    32 OBJECT  GLOBAL DEFAULT   20 b
     5: 0000000000402604    55 FUNC    GLOBAL DEFAULT  UND recv
     6: 0000000000402614     0 FUNC    GLOBAL DEFAULT  UND connect
     7: 0000000000402624    52 FUNC    GLOBAL DEFAULT  UND sigemptyset
     8: 000000000050d358     8 OBJECT  GLOBAL DEFAULT   13 buffer_2
     9: 000000000050d390     4 OBJECT  GLOBAL DEFAULT   13 error_perm
    10: 000000000050fbc0    40 OBJECT  GLOBAL DEFAULT   20 localportstr
    11: 000000000050d320     8 OBJECT  GLOBAL DEFAULT   13 limit
    12: 0000000000402634     0 FUNC    GLOBAL DEFAULT  UND munmap
    13: 000000000050d394     4 OBJECT  GLOBAL DEFAULT   13 error_pipe
    14: 000000000050e8f8     0 OBJECT  GLOBAL DEFAULT  ABS _DYNAMIC
    15: 000000000050fb80     4 OBJECT  GLOBAL DEFAULT   20 subgetoptproblem
    16: 000000000050ef58     8 OBJECT  GLOBAL DEFAULT   20 uid
    17: 0000000000402644     0 FUNC    GLOBAL DEFAULT  UND execve
    18: 0000000000402654     0 FUNC    GLOBAL DEFAULT  UND getpid
    19: 0000000000402664    23 FUNC    GLOBAL DEFAULT  UND SSL_get_fd
    20: 000000000050d3e0     4 OBJECT  GLOBAL DEFAULT   13 sig_child
    21: 000000000050ef50     8 OBJECT  GLOBAL DEFAULT   20 gid
    22: 0000000000402674   143 FUNC    GLOBAL DEFAULT  UND SSL_read
    23: 0000000000402684   962 FUNC    GLOBAL DEFAULT  UND SSL_new
    24: 000000000050fb70     8 OBJECT  GLOBAL DEFAULT   20 sgetoptprogname
    25: 0000000000402694  1176 FUNC    GLOBAL DEFAULT  UND SSL_CTX_new
    26: 00000000004026a4    35 FUNC    GLOBAL DEFAULT  UND malloc
    27: 000000000050ef30     8 OBJECT  GLOBAL DEFAULT   20 limit_ip
    28: 000000000050d340     4 OBJECT  GLOBAL DEFAULT   13 verbosity
    29: 000000000050fbf0    20 OBJECT  GLOBAL DEFAULT   20 localipstr
    30: 00000000004026b4   322 FUNC    GLOBAL DEFAULT  UND SSL_library_init
    31: 000000000050d398     4 OBJECT  GLOBAL DEFAULT   13 error_again
    32: 000000000050ef80     8 OBJECT  GLOBAL DEFAULT   20 remotehost
    33: 00000000004026c4     0 FUNC    GLOBAL DEFAULT  UND socket
    34: 00000000004026d4     0 FUNC    GLOBAL DEFAULT  UND setgroups
    35: 00000000004026e4   367 FUNC    GLOBAL DEFAULT  UND SSL_CTX_use_RSAPrivateKey
    36: 000000000050d3d0     4 OBJECT  GLOBAL DEFAULT   13 sig_term
    37: 000000000050fc04     2 OBJECT  GLOBAL DEFAULT   20 remoteport
    38: 00000000004026f4    53 FUNC    GLOBAL DEFAULT  UND lseek
    39: 0000000000402704    99 FUNC    GLOBAL DEFAULT  UND sigaddset
    40: 0000000000402714    31 FUNC    GLOBAL DEFAULT  UND SSL_pending
    41: 0000000000402724    94 FUNC    GLOBAL DEFAULT  UND mmap
    42: 000000000050d3ec     4 OBJECT  GLOBAL DEFAULT   13 subgetoptind
    43: 000000000050d3c0     4 OBJECT  GLOBAL DEFAULT   13 sgetopterr
    44: 0000000000402734    55 FUNC    GLOBAL DEFAULT  UND send
    45: 00000000004025d0     0 FUNC    GLOBAL DEFAULT    8 _init
    46: 0000000000402744     0 FUNC    GLOBAL DEFAULT  UND pipe
    47: 000000000050d3a0     4 OBJECT  GLOBAL DEFAULT   13 error_inprogress
    48: 0000000000403660    11 FUNC    GLOBAL DEFAULT   10 sigterm
    49: 0000000000402754     0 FUNC    GLOBAL DEFAULT  UND accept
    50: 000000000050fc20    40 OBJECT  GLOBAL DEFAULT   20 strnum2
    51: 000000000050d330     4 OBJECT  GLOBAL DEFAULT   13 flagremotehost
    52: 0000000000402764   241 FUNC    GLOBAL DEFAULT  UND SSL_set_bio
    53: 0000000000402774     0 FUNC    GLOBAL DEFAULT  UND write
    54: 000000000050fb98     8 OBJECT  GLOBAL DEFAULT   20 environ
    55: 0000000000402784     0 FUNC    GLOBAL DEFAULT  UND fstat
    56: 000000000050fc48     4 OBJECT  GLOBAL DEFAULT   20 remoteip
    57: 0000000000402794     0 FUNC    GLOBAL DEFAULT  UND bind
    58: 000000000050fc50    16 OBJECT  GLOBAL DEFAULT   20 bspace
    59: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __deregister_frame_info
    60: 000000000050d388     4 OBJECT  GLOBAL DEFAULT   13 error_nodevice
    61: 00000000004027a4     0 FUNC    GLOBAL DEFAULT  UND setsockopt
    62: 000000000050d3d4     4 OBJECT  GLOBAL DEFAULT   13 sig_pipe
    63: 000000000050fc60     2 OBJECT  GLOBAL DEFAULT   20 localport
    64: 00000000004027b4    65 FUNC    GLOBAL DEFAULT  UND SSL_CTX_set_cipher_list
    65: 000000000050d33c     4 OBJECT  GLOBAL DEFAULT   13 flagkillopts
    66: 000000000050ef70     8 OBJECT  GLOBAL DEFAULT   20 fnrules
    67: 000000000050d300     8 OBJECT  GLOBAL DEFAULT   13 __progname
    68: 0000000000403db0   312 FUNC    GLOBAL DEFAULT   10 sigchld
    69: 000000000050d3a4     4 OBJECT  GLOBAL DEFAULT   13 error_timeout
    70: 000000000050d3ac     4 OBJECT  GLOBAL DEFAULT   13 error_io
    71: 00000000004027c4    13 FUNC    GLOBAL DEFAULT  UND __error
    72: 00000000004027d4     0 FUNC    GLOBAL DEFAULT  UND setgid
    73: 000000000050ef60     4 OBJECT  GLOBAL DEFAULT   20 flag1
    74: 00000000004027e4     0 FUNC    GLOBAL DEFAULT  UND read
    75: 000000000050ef88     8 OBJECT  GLOBAL DEFAULT   20 localhost
    76: 000000000050d348     8 OBJECT  GLOBAL DEFAULT   13 banner
    77: 000000000050d3c8     8 OBJECT  GLOBAL DEFAULT   13 sig_ignorehandler
    78: 00000000004027f4   148 FUNC    GLOBAL DEFAULT  UND SSLv23_server_method
    79: 000000000050d38c     4 OBJECT  GLOBAL DEFAULT   13 error_acces
    80: 000000000050d380     4 OBJECT  GLOBAL DEFAULT   13 error_isdir
    81: 000000000050fb88     8 OBJECT  GLOBAL DEFAULT   20 subgetoptarg
    82: 0000000000402804     0 FUNC    GLOBAL DEFAULT  UND listen
    83: 0000000000402814     0 FUNC    GLOBAL DEFAULT  UND fork
    84: 000000000050f020    16 OBJECT  GLOBAL DEFAULT   20 rules_name
    85: 0000000000402824     0 FUNC    GLOBAL DEFAULT  UND sigaction
    86: 000000000050d3b0     4 OBJECT  GLOBAL DEFAULT   13 error_txtbsy
    87: 0000000000402834     0 FUNC    GLOBAL DEFAULT  UND gettimeofday
    88: 0000000000402844    56 FUNC    GLOBAL DEFAULT  UND SSL_accept
    89: 000000000050eee0     0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
    90: 000000000050d318     8 OBJECT  GLOBAL DEFAULT   13 backlog
    91: 000000000050d3b8     4 OBJECT  GLOBAL DEFAULT   13 error_nomem
    92: 0000000000402854     6 FUNC    GLOBAL DEFAULT  UND _init_tls
    93: 000000000050f140    96 OBJECT  GLOBAL DEFAULT   20 dns_resolve_tx
    94: 000000000050fc62     4 OBJECT  GLOBAL DEFAULT   20 localip
    95: 000000000050d328     8 OBJECT  GLOBAL DEFAULT   13 timeout
    96: 0000000000402864     0 FUNC    GLOBAL DEFAULT  UND ntohs
    97: 0000000000402874     0 FUNC    GLOBAL DEFAULT  UND getppid
    98: 000000000050d3b4     4 OBJECT  GLOBAL DEFAULT   13 error_noent
    99: 0000000000402884     0 FUNC    GLOBAL DEFAULT  UND poll
   100: 000000000050d384     4 OBJECT  GLOBAL DEFAULT   13 error_proto
   101: 000000000040c2fc     0 FUNC    GLOBAL DEFAULT   11 _fini
   102: 0000000000402894   108 FUNC    GLOBAL DEFAULT  UND getservbyname
   103: 00000000004028a4   121 FUNC    GLOBAL DEFAULT  UND gethostname
   104: 000000000050efa4     4 OBJECT  GLOBAL DEFAULT   20 flagparanoid
   105: 00000000004028b4    57 FUNC    GLOBAL DEFAULT  UND atexit
   106: 000000000050d338     4 OBJECT  GLOBAL DEFAULT   13 flagdelay
   107: 00000000004028c4     0 FUNC    GLOBAL DEFAULT  UND getpeername
   108: 000000000050ef78     4 OBJECT  GLOBAL DEFAULT   20 flagallownorules
   109: 000000000050efa0     4 OBJECT  GLOBAL DEFAULT   20 flagssl
   110: 00000000004028d4   543 FUNC    GLOBAL DEFAULT  UND SSL_CTX_use_certificate_c
   111: 000000000050ef90    16 OBJECT  GLOBAL DEFAULT   20 certfile
   112: 000000000050d3bc     4 OBJECT  GLOBAL DEFAULT   13 error_intr
   113: 000000000050fc80    40 OBJECT  GLOBAL DEFAULT   20 strnum
   114: 000000000050d39c     4 OBJECT  GLOBAL DEFAULT   13 error_wouldblock
   115: 000000000050ef68     8 OBJECT  GLOBAL DEFAULT   20 numchildren
   116: 000000000050eee0     0 NOTYPE  GLOBAL DEFAULT  ABS _edata
   117: 000000000050eaa0     0 OBJECT  GLOBAL DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
   118: 0000000000510640     0 NOTYPE  GLOBAL DEFAULT  ABS _end
   119: 000000000050ef7c     4 OBJECT  GLOBAL DEFAULT   20 flagdeny
   120: 00000000004028e4    77 FUNC    GLOBAL DEFAULT  UND exit
   121: 0000000000402da0   160 FUNC    GLOBAL DEFAULT   10 found
   122: 0000000000510620    32 OBJECT  GLOBAL DEFAULT   20 strerr_sys
   123: 000000000050fcb0    20 OBJECT  GLOBAL DEFAULT   20 remoteipstr
   124: 000000000050fcc8     8 OBJECT  GLOBAL DEFAULT   20 conns
   125: 00000000004028f4     0 FUNC    GLOBAL DEFAULT  UND _exit
   126: 000000000050fce0  2048 OBJECT  GLOBAL DEFAULT   20 tbuf
   127: 0000000000402904     0 FUNC    GLOBAL DEFAULT  UND open
   128: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _Jv_RegisterClasses
   129: 0000000000402914     0 FUNC    GLOBAL DEFAULT  UND fcntl
   130: 000000000050d334     4 OBJECT  GLOBAL DEFAULT   13 flagremoteinfo
   131: 0000000000402924     0 FUNC    GLOBAL DEFAULT  UND setuid
   132: 000000000050fb78     8 OBJECT  GLOBAL DEFAULT   20 sig_defaulthandler
   133: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __register_frame_info
   134: 0000000000402934     0 FUNC    GLOBAL DEFAULT  UND close
   135: 000000000050d3a8     4 OBJECT  GLOBAL DEFAULT   13 error_exist
   136: 0000000000402944   176 FUNC    GLOBAL DEFAULT  UND SSL_write
   137: 0000000000402954     0 FUNC    GLOBAL DEFAULT  UND sigsuspend
   138: 0000000000402964    35 FUNC    GLOBAL DEFAULT  UND free
   139: 000000000050d3e8     4 OBJECT  GLOBAL DEFAULT   13 subgetoptdone
   140: 00000000005104e0    40 OBJECT  GLOBAL DEFAULT   20 remoteportstr
   141: 0000000000402974    85 FUNC    GLOBAL DEFAULT  UND BIO_new_socket
   142: 0000000000402984     0 FUNC    GLOBAL DEFAULT  UND sigprocmask
   143: 0000000000402994     0 FUNC    GLOBAL DEFAULT  UND getsockname

[root@te-clan ~]# ldd /usr/local/bin/tcpserver
/usr/local/bin/tcpserver:
	libssl.so.4 => /usr/lib/libssl.so.4 (0x80064c000)
	libc.so.6 => /lib/libc.so.6 (0x800791000)
	libcrypto.so.4 => /lib/libcrypto.so.4 (0x8009ed000)

[root@te-clan ~]# pkg_info | grep tcp
ucspi-tcp-0.88_2    Command-line tools for building TCP client-server applicati
# patch < ucspi-tcp-0.88-mysql+rss.patch 
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
| Additional info regarding this patch can be found at 
| http://www.tnpi.biz/internet/mail/toaster/patches/tcpserver-mysql.shtml
| 
| v1.2 - 2004.08.01
|
|   same patch, but entirely in unified diff format for folks whose
|   patch program is nit picky.
|
| v1.1 - 2004.05.29
| 
| added RBLSMTPD to IPs in MySQL table so that clients that 
| have authenticated override any IP blacklists (like SORBS)
| 
|
|diff -urN ucspi-tcp-0.88.dist/Makefile ucspi-tcp-0.88/Makefile
|--- ucspi-tcp-0.88.dist/Makefile	Sat Mar 18 10:18:42 2000
|+++ ucspi-tcp-0.88/Makefile	Mon Aug  2 20:36:50 2004
--------------------------
Patching file Makefile using Plan A...
Hunk #1 succeeded at 513.
Hunk #2 succeeded at 746.
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -urN ucspi-tcp-0.88.dist/conf-cc ucspi-tcp-0.88/conf-cc
|--- ucspi-tcp-0.88.dist/conf-cc	Sat Mar 18 10:18:42 2000
|+++ ucspi-tcp-0.88/conf-cc	Mon Aug  2 20:36:50 2004
--------------------------
Patching file conf-cc using Plan A...
Hunk #1 succeeded at 1.
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -urN ucspi-tcp-0.88.dist/conf-ld ucspi-tcp-0.88/conf-ld
|--- ucspi-tcp-0.88.dist/conf-ld	Sat Mar 18 10:18:42 2000
|+++ ucspi-tcp-0.88/conf-ld	Mon Aug  2 20:36:50 2004
--------------------------
Patching file conf-ld using Plan A...
Hunk #1 succeeded at 1.
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -urN ucspi-tcp-0.88.dist/db.c ucspi-tcp-0.88/db.c
|--- ucspi-tcp-0.88.dist/db.c	Wed Dec 31 19:00:00 1969
|+++ ucspi-tcp-0.88/db.c	Mon Aug  2 20:36:50 2004
--------------------------
(Creating file db.c...)
Patching file db.c using Plan A...
Hunk #1 succeeded at 1.
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -urN ucspi-tcp-0.88.dist/db.h ucspi-tcp-0.88/db.h
|--- ucspi-tcp-0.88.dist/db.h	Wed Dec 31 19:00:00 1969
|+++ ucspi-tcp-0.88/db.h	Mon Aug  2 20:36:50 2004
--------------------------
(Creating file db.h...)
Patching file db.h using Plan A...
Hunk #1 succeeded at 1.
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -urN ucspi-tcp-0.88.dist/rblsmtpd.c ucspi-tcp-0.88/rblsmtpd.c
|--- ucspi-tcp-0.88.dist/rblsmtpd.c	Sat Mar 18 10:18:42 2000
|+++ ucspi-tcp-0.88/rblsmtpd.c	Mon Aug  2 20:36:50 2004
--------------------------
Patching file rblsmtpd.c using Plan A...
Hunk #1 succeeded at 60.
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -urN ucspi-tcp-0.88.dist/tcpserver.c ucspi-tcp-0.88/tcpserver.c
|--- ucspi-tcp-0.88.dist/tcpserver.c	Sat Mar 18 10:18:42 2000
|+++ ucspi-tcp-0.88/tcpserver.c	Mon Aug  2 20:36:50 2004
--------------------------
Patching file tcpserver.c using Plan A...
Hunk #1 succeeded at 1.
Hunk #2 succeeded at 26.
Hunk #3 succeeded at 112.
Hunk #4 succeeded at 205.
Hunk #5 succeeded at 258.
Hunk #6 succeeded at 318.
Hunk #7 succeeded at 345.
Hunk #8 succeeded at 417.
Hunk #9 succeeded at 425.
done
db.c:4:19: mysql.h: No such file or directory
db.c:18: error: syntax error before '*' token
db.c:18: warning: data definition has no type or storage class
db.c: In function `open_db':
db.c:32: error: `MYSQL' undeclared (first use in this function)
db.c:32: error: (Each undeclared identifier is reported only once
db.c:32: error: for each function it appears in.)
db.c:32: error: `tmp' undeclared (first use in this function)
db.c:38: error: syntax error before ')' token
db.c: In function `check_db':
db.c:60: error: `MYSQL_RES' undeclared (first use in this function)
db.c:60: error: `res' undeclared (first use in this function)
*** Error code 1
1 error
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop in /usr/ports/sysutils/ucspi-tcp.
[root@te-clan ~]# tcpserver -v
tcpserver: usage: tcpserver [ -1UXpPhHrRoOdDqQvS ] [ -c limit ] [ -x rules.cdb ] [ -B banner ] [ -g gid ] [ -u uid ] [ -b backlog ] [ -l localname ] [ -t timeout ] host port program

[root@te-clan ~]# readelf -s /usr/local/bin/tcpserver  
Symbol table '.dynsym' contains 155 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 00000000004029bc     0 FUNC    GLOBAL DEFAULT  UND strcpy
     2: 00000000004029cc    40 FUNC    GLOBAL DEFAULT  UND waitpid
     3: 000000000050fce0     4 OBJECT  GLOBAL DEFAULT   22 subgetoptpos
     4: 000000000050fd00    32 OBJECT  GLOBAL DEFAULT   22 b
     5: 00000000004029dc    55 FUNC    GLOBAL DEFAULT  UND recv
     6: 00000000004029ec     0 FUNC    GLOBAL DEFAULT  UND connect
     7: 00000000004029fc     8 FUNC    GLOBAL DEFAULT  UND mysql_error@libmysqlclient_15 (2)
     8: 0000000000402a0c    52 FUNC    GLOBAL DEFAULT  UND sigemptyset
     9: 0000000000402a1c   365 FUNC    GLOBAL DEFAULT  UND mysql_store_result@libmysqlclient_15 (2)
    10: 000000000050d400     8 OBJECT  GLOBAL DEFAULT   15 buffer_2
    11: 000000000050d434     4 OBJECT  GLOBAL DEFAULT   15 error_perm
    12: 000000000050fd20    40 OBJECT  GLOBAL DEFAULT   22 localportstr
    13: 000000000050d3b8     8 OBJECT  GLOBAL DEFAULT   15 limit
    14: 0000000000402a2c   458 FUNC    GLOBAL DEFAULT  UND snprintf
    15: 0000000000402a3c     0 FUNC    GLOBAL DEFAULT  UND munmap
    16: 000000000050fe80   256 OBJECT  GLOBAL DEFAULT   22 db_database
    17: 000000000050d430     4 OBJECT  GLOBAL DEFAULT   15 error_pipe
    18: 000000000050ea28     0 OBJECT  GLOBAL DEFAULT  ABS _DYNAMIC
    19: 000000000050fcf0     4 OBJECT  GLOBAL DEFAULT   22 subgetoptproblem
    20: 000000000050f128     8 OBJECT  GLOBAL DEFAULT   22 uid
    21: 000000000050ff80   256 OBJECT  GLOBAL DEFAULT   22 db_password
    22: 0000000000000000     4 OBJECT  GLOBAL DEFAULT  UND errno
    23: 0000000000402a4c     0 FUNC    GLOBAL DEFAULT  UND execve
    24: 0000000000402a5c     0 FUNC    GLOBAL DEFAULT  UND getpid
    25: 0000000000402a6c   506 FUNC    GLOBAL DEFAULT  UND fgets
    26: 000000000050d454     4 OBJECT  GLOBAL DEFAULT   15 sig_child
    27: 000000000050f130     8 OBJECT  GLOBAL DEFAULT   22 gid
    28: 0000000000000000     8 OBJECT  GLOBAL DEFAULT  UND __stderrp
    29: 000000000050fcd0     8 OBJECT  GLOBAL DEFAULT   22 sgetoptprogname
    30: 0000000000402a7c    35 FUNC    GLOBAL DEFAULT  UND malloc
    31: 0000000000510080   256 OBJECT  GLOBAL DEFAULT   22 db_user
    32: 000000000050d398     4 OBJECT  GLOBAL DEFAULT   15 verbosity
    33: 000000000050fd50    20 OBJECT  GLOBAL DEFAULT   22 localipstr
    34: 000000000050d42c     4 OBJECT  GLOBAL DEFAULT   15 error_again
    35: 000000000050f100     8 OBJECT  GLOBAL DEFAULT   22 remotehost
    36: 0000000000402a8c   187 FUNC    GLOBAL DEFAULT  UND mysql_init@libmysqlclient_15 (2)
    37: 0000000000402a9c     0 FUNC    GLOBAL DEFAULT  UND socket
    38: 0000000000402aac     0 FUNC    GLOBAL DEFAULT  UND setgroups
    39: 0000000000510180   256 OBJECT  GLOBAL DEFAULT   22 db_host
    40: 000000000050d464     4 OBJECT  GLOBAL DEFAULT   15 sig_term
    41: 000000000050fd64     2 OBJECT  GLOBAL DEFAULT   22 remoteport
    42: 0000000000402abc    53 FUNC    GLOBAL DEFAULT  UND lseek
    43: 0000000000402acc    99 FUNC    GLOBAL DEFAULT  UND sigaddset
    44: 0000000000402adc    94 FUNC    GLOBAL DEFAULT  UND mmap
    45: 000000000050d470     4 OBJECT  GLOBAL DEFAULT   15 subgetoptind
    46: 000000000050d448     4 OBJECT  GLOBAL DEFAULT   15 sgetopterr
    47: 0000000000402aec    55 FUNC    GLOBAL DEFAULT  UND send
    48: 0000000000402afc  3968 FUNC    GLOBAL DEFAULT  UND mysql_real_connect@libmysqlclient_15 (2)
    49: 0000000000402998     0 FUNC    GLOBAL DEFAULT   10 _init
    50: 000000000050d424     4 OBJECT  GLOBAL DEFAULT   15 error_inprogress
    51: 00000000004039f0    14 FUNC    GLOBAL DEFAULT   12 sigterm
    52: 0000000000402b0c     0 FUNC    GLOBAL DEFAULT  UND accept
    53: 000000000050fd80    40 OBJECT  GLOBAL DEFAULT   22 strnum2
    54: 000000000050d3a8     4 OBJECT  GLOBAL DEFAULT   15 flagremotehost
    55: 000000000050d3d0     4 OBJECT  GLOBAL DEFAULT   15 db_port
    56: 0000000000402b1c     0 FUNC    GLOBAL DEFAULT  UND write
    57: 000000000050fcf8     8 OBJECT  GLOBAL DEFAULT   22 environ
    58: 0000000000402b2c     0 FUNC    GLOBAL DEFAULT  UND fstat
    59: 0000000000402b3c   223 FUNC    GLOBAL DEFAULT  UND fprintf
    60: 000000000050fda8     4 OBJECT  GLOBAL DEFAULT   22 remoteip
    61: 0000000000402b4c     0 FUNC    GLOBAL DEFAULT  UND bind
    62: 000000000050fdb0    16 OBJECT  GLOBAL DEFAULT   22 bspace
    63: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __deregister_frame_info
    64: 000000000050d43c     4 OBJECT  GLOBAL DEFAULT   15 error_nodevice
    65: 0000000000402b5c     0 FUNC    GLOBAL DEFAULT  UND setsockopt
    66: 000000000050d460     4 OBJECT  GLOBAL DEFAULT   15 sig_pipe
    67: 000000000050fdc0     2 OBJECT  GLOBAL DEFAULT   22 localport
    68: 000000000050f1f0     8 OBJECT  GLOBAL DEFAULT   22 dbh
    69: 000000000050d39c     4 OBJECT  GLOBAL DEFAULT   15 flagkillopts
    70: 000000000050f110     8 OBJECT  GLOBAL DEFAULT   22 fnrules
    71: 000000000050d380     8 OBJECT  GLOBAL DEFAULT   15 __progname
    72: 0000000000403a00   182 FUNC    GLOBAL DEFAULT   12 sigchld
    73: 000000000050d420     4 OBJECT  GLOBAL DEFAULT   15 error_timeout
    74: 0000000000402b6c   136 FUNC    GLOBAL DEFAULT  UND strstr
    75: 000000000050d418     4 OBJECT  GLOBAL DEFAULT   15 error_io
    76: 0000000000402b7c     0 FUNC    GLOBAL DEFAULT  UND setgid
    77: 000000000050f120     4 OBJECT  GLOBAL DEFAULT   22 flag1
    78: 0000000000402b8c     0 FUNC    GLOBAL DEFAULT  UND read
    79: 000000000050f0f8     8 OBJECT  GLOBAL DEFAULT   22 localhost
    80: 000000000050d3c8     8 OBJECT  GLOBAL DEFAULT   15 banner
    81: 0000000000402b9c   143 FUNC    GLOBAL DEFAULT  UND strcasecmp
    82: 000000000050d468     8 OBJECT  GLOBAL DEFAULT   15 sig_ignorehandler
    83: 000000000050d438     4 OBJECT  GLOBAL DEFAULT   15 error_acces
    84: 000000000050d444     4 OBJECT  GLOBAL DEFAULT   15 error_isdir
    85: 0000000000510280     4 OBJECT  GLOBAL DEFAULT   22 pop_timeout
    86: 000000000050fce8     8 OBJECT  GLOBAL DEFAULT   22 subgetoptarg
    87: 0000000000402bac     0 FUNC    GLOBAL DEFAULT  UND listen
    88: 0000000000402bbc   418 FUNC    GLOBAL DEFAULT  UND mysql_close@libmysqlclient_15 (2)
    89: 0000000000402bcc     0 FUNC    GLOBAL DEFAULT  UND fork
    90: 0000000000402bdc   408 FUNC    GLOBAL DEFAULT  UND sscanf
    91: 000000000050f1a0    16 OBJECT  GLOBAL DEFAULT   22 rules_name
    92: 0000000000402bec     0 FUNC    GLOBAL DEFAULT  UND sigaction
    93: 0000000000402bfc   225 FUNC    GLOBAL DEFAULT  UND mysql_free_result@libmysqlclient_15 (2)
    94: 000000000050d414     4 OBJECT  GLOBAL DEFAULT   15 error_txtbsy
    95: 0000000000402c0c     0 FUNC    GLOBAL DEFAULT  UND gettimeofday
    96: 0000000000402c1c   264 FUNC    GLOBAL DEFAULT  UND fopen
    97: 000000000050f088     0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
    98: 000000000050d3c0     8 OBJECT  GLOBAL DEFAULT   15 backlog
    99: 000000000050d40c     4 OBJECT  GLOBAL DEFAULT   15 error_nomem
   100: 0000000000402c2c     6 FUNC    GLOBAL DEFAULT  UND _init_tls
   101: 000000000050f2c0    96 OBJECT  GLOBAL DEFAULT   22 dns_resolve_tx
   102: 000000000050fdc2     4 OBJECT  GLOBAL DEFAULT   22 localip
   103: 0000000000402c3c   377 FUNC    GLOBAL DEFAULT  UND fclose
   104: 000000000050d3b0     8 OBJECT  GLOBAL DEFAULT   15 timeout
   105: 0000000000402c4c     0 FUNC    GLOBAL DEFAULT  UND ntohs
   106: 0000000000402c5c     0 FUNC    GLOBAL DEFAULT  UND getppid
   107: 000000000050d410     4 OBJECT  GLOBAL DEFAULT   15 error_noent
   108: 0000000000402c6c    15 FUNC    GLOBAL DEFAULT  UND mysql_affected_rows@libmysqlclient_15 (2)
   109: 0000000000402c7c     0 FUNC    GLOBAL DEFAULT  UND poll
   110: 000000000050d440     4 OBJECT  GLOBAL DEFAULT   15 error_proto
   111: 000000000040c3fc     0 FUNC    GLOBAL DEFAULT   13 _fini
   112: 0000000000402c8c    55 FUNC    GLOBAL DEFAULT  UND mysql_query@libmysqlclient_15 (2)
   113: 0000000000402c9c   108 FUNC    GLOBAL DEFAULT  UND getservbyname
   114: 0000000000402cac   121 FUNC    GLOBAL DEFAULT  UND gethostname
   115: 000000000050f0f4     4 OBJECT  GLOBAL DEFAULT   22 flagparanoid
   116: 0000000000402cbc    57 FUNC    GLOBAL DEFAULT  UND atexit
   117: 000000000050d3a0     4 OBJECT  GLOBAL DEFAULT   15 flagdelay
   118: 0000000000402ccc     0 FUNC    GLOBAL DEFAULT  UND getpeername
   119: 000000000050f10c     4 OBJECT  GLOBAL DEFAULT   22 flagallownorules
   120: 00000000005102a0   256 OBJECT  GLOBAL DEFAULT   22 db_table
   121: 000000000050d408     4 OBJECT  GLOBAL DEFAULT   15 error_intr
   122: 000000000050fde0    40 OBJECT  GLOBAL DEFAULT   22 strnum
   123: 000000000050d428     4 OBJECT  GLOBAL DEFAULT   15 error_wouldblock
   124: 0000000000402cdc   216 FUNC    GLOBAL DEFAULT  UND fwrite
   125: 000000000050f118     8 OBJECT  GLOBAL DEFAULT   22 numchildren
   126: 000000000050f088     0 NOTYPE  GLOBAL DEFAULT  ABS _edata
   127: 000000000050ebf0     0 OBJECT  GLOBAL DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
   128: 00000000005104c0     0 NOTYPE  GLOBAL DEFAULT  ABS _end
   129: 000000000050f108     4 OBJECT  GLOBAL DEFAULT   22 flagdeny
   130: 0000000000402cec    77 FUNC    GLOBAL DEFAULT  UND exit
   131: 0000000000403190   145 FUNC    GLOBAL DEFAULT   12 found
   132: 00000000005104a0    32 OBJECT  GLOBAL DEFAULT   22 strerr_sys
   133: 0000000000402cfc    33 FUNC    GLOBAL DEFAULT  UND atoi
   134: 000000000050fe10    20 OBJECT  GLOBAL DEFAULT   22 remoteipstr
   135: 0000000000402d0c   123 FUNC    GLOBAL DEFAULT  UND mysql_ping@libmysqlclient_15 (2)
   136: 0000000000402d1c     0 FUNC    GLOBAL DEFAULT  UND _exit
   137: 0000000000402d2c     0 FUNC    GLOBAL DEFAULT  UND open
   138: 000000000050f0f0     4 OBJECT  GLOBAL DEFAULT   22 usemysql
   139: 0000000000402d3c    81 FUNC    GLOBAL DEFAULT  UND strchr
   140: 0000000000402d4c   149 FUNC    GLOBAL DEFAULT  UND fputs
   141: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _Jv_RegisterClasses
   142: 0000000000402d5c     0 FUNC    GLOBAL DEFAULT  UND fcntl
   143: 000000000050d3a4     4 OBJECT  GLOBAL DEFAULT   15 flagremoteinfo
   144: 0000000000402d6c     0 FUNC    GLOBAL DEFAULT  UND setuid
   145: 000000000050fcd8     8 OBJECT  GLOBAL DEFAULT   22 sig_defaulthandler
   146: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __register_frame_info
   147: 0000000000402d7c     0 FUNC    GLOBAL DEFAULT  UND close
   148: 000000000050d41c     4 OBJECT  GLOBAL DEFAULT   15 error_exist
   149: 0000000000402d8c     0 FUNC    GLOBAL DEFAULT  UND sigsuspend
   150: 0000000000402d9c    35 FUNC    GLOBAL DEFAULT  UND free
   151: 000000000050d474     4 OBJECT  GLOBAL DEFAULT   15 subgetoptdone
   152: 000000000050fe40    40 OBJECT  GLOBAL DEFAULT   22 remoteportstr
   153: 0000000000402dac     0 FUNC    GLOBAL DEFAULT  UND sigprocmask
   154: 0000000000402dbc     0 FUNC    GLOBAL DEFAULT  UND getsockname

[root@te-clan ~]# ldd /usr/local/bin/tcpserver  
/usr/local/bin/tcpserver:
	libmysqlclient.so.15 => /usr/local/lib/mysql/libmysqlclient.so.15 (0x80064c000)
	libc.so.6 => /lib/libc.so.6 (0x8007c1000)
	libcrypt.so.3 => /lib/libcrypt.so.3 (0x800a1d000)
	libm.so.4 => /lib/libm.so.4 (0x800b38000)
	libz.so.3 => /lib/libz.so.3 (0x800c60000)

/var/qmail/service/smtpd/log/main/current

@40000000538c4ed3372393e4 tcpserver: status: 1/200
@40000000538c4ed337326cac db_port set to: [3306]
@40000000538c4ed337328034 db_ping() is re-calling open_db!
@40000000538c4ed337e6cc74 tcpserver: pid 74051 from x.x.x.x
@40000000538c4ed337f3fb74 tcpserver: ok 74051 te-clan.ch:195.134.157.20:25 :x.x.x.x::57943
@40000000538c4ed834e148ec tcpserver: end 74051 status 0
@40000000538c4ed834efeeec tcpserver: status: 0/200

@40000000538c6b692688577c use mysql=1
@40000000538c6b6926886eec after db_ping(), before check_db()
@40000000538c6b6926888274 QUERY: SELECT timestamp FROM lastauth WHERE remote_ip='x.x.x.x' AND timestamp>(UNIX_TIMESTAMP()-1800)
@40000000538c6b69268899e4 QUERY(err:0/rows:1): SELECT timestamp FROM lastauth WHERE remote_ip='x.x.x.x' AND timestamp>(UNIX_TIMESTAMP()-1800)
@40000000538c6b692688b154 found entry
@40000000538c6b692688c4dc after check_db(): flagdeny=0
@40000000538c6b692688d864 tcpserver: pid 79280 from 80.218.250.37
@40000000538c6b6926963e14 doit() ip=x.x.x.x, port=55580, host=(null)
@40000000538c6b692696596c doit() before usemysql: flagdeny=0
@40000000538c6b6926966cf4 tcpserver: ok 79280 te-clan.ch:195.134.157.20:25 :x.x.x.x::55580
@40000000538c6b692696807c doit() before exit: flagdeny=0
@40000000538c6b7510181824 tcpserver: end 79280 status 0
@40000000538c6b751026e91c tcpserver: status: 0/200

Courier IMAP

Large-Scale Mail with Postfix, OpenLDAP and Courier
Life With qmail-ldap

Compiling imaplogin.c
imaplogin.c:35:25: courierauth.h: No such file or directory
imaplogin.c:36:30: courierauthdebug.h: No such file or directory

use CFLAGS=/usr/local/include

Error in make around imaplogin.c

Gentoo: Complete Virtual Mail Server
Courier MTA: Debugging authentication problems

tbpql

Port 587

Setup Qmail to Listen on port 587 for SMTP
How do I run qmail on port 587?
Running Toaster QMail SMTP on a 2nd port
How to: qmail-smtpd for roaming users

Leave a Reply

Your email address will not be published. Required fields are marked *