Postfix, MySQL, Courier, Maildrop, amavis-new

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
charlie
Posts: 78
Joined: 2002-09-30 23:36

Postfix, MySQL, Courier, Maildrop, amavis-new

Post by charlie » 2005-09-09 14:53

HI,

ich versuche nachträgich ein maildrop in mein Postfix, MySQL, Courier, amavis-new einzubauen. Frage dazu ist braucht maildrop ein eingen user, denn ich habe nicht vmail sonderen den postfix genommen?
So bin ich vorgegangen:

main.cf
virtual_transport = maildrop
maildrop_destination_recipient_limit = 1

master.cf
maildrop unix - n n - - pipe
flags=DRhu user=postfix argv=/usr/local/bin/maildrop -d ${recipient}


1.Version überprüfen mit maildrop -v
tsunami:~# maildrop -v
maildrop 1.6.3 Copyright 1998-2003 Double Precision, Inc.
Maildir quota extension enabled.
Virtual user database via MySQL extension enabled.
2. Wenn die die Ausgabe nicht so aussieht muss man sich maildrop selber kompilieren.
maildrop sourcen downloaden http://www.courier-mta.org/maildrop/
3.vi /etc/maildroprc
logfile "/export/home/vmail/maildrop.log"
to "${HOME}"
4. vi /etc/courier/maildropmysql.conf
HOSTNAME localhost
PORT 3306
DATABASE mailbase
DBUSER postfix
DBPW passworddb
DBTABLE mailbox
DEFAULT_UIDNUMBER 51
DEFAULT_GIDNUMBER 51
UIDNUMBER_FIELD '51'
GIDNUMBER_FIELD '51'
UID_FIELD postfix
GID_FIELD 51
HOMEDIRECTORY_FIELD concat('/export/home/vmail/',maildir)
HOMEDIRECTORY_BASE /export/home/vmail/
MAILDIR_FIELD maildir
QUOTA_FIELD quota

5.kompilieren
./configure --prefix=/etc/courier --enable-maildirquota
--with-trashquota --enable-restrict-trusted=1
--enable-trusted-user='root postfix' --enable-trusted-groups='root
vmail' --enable-maildropmysql
--with-mysqlconfig=/etc/courier/maildropmysql.conf
--enable-syslog=1
make
make install-strip
make install-man

Wenn ich jetzt meine main.cf abändere von virtual_transport = virtual auf virtual_transport = maildrop bekomme ich diesen fehler:

Code: Select all

Sep  9 13:25:09 nemo postfix/qmgr[16245]: 952F426803B: removed
Sep  9 13:25:10 nemo postfix/qmgr[16245]: warning: premature end-of-input on private/maildrop socket while reading input attribute name
Sep  9 13:25:10 nemo postfix/qmgr[16245]: warning: private/maildrop socket: malformed response
Sep  9 13:25:10 nemo postfix/qmgr[16245]: warning: transport maildrop failure -- see a previous warning/fatal/panic logfile record for the problem description
Sep  9 13:25:10 nemo postfix/master[16238]: warning: process /usr/lib/postfix/pipe pid 16320 exit status 1
Sep  9 13:25:10 nemo postfix/master[16238]: warning: /usr/lib/postfix/pipe: bad command startup -- throttling
Meine master.cf sieht so aus:

Code: Select all

smtp      inet  n       -       n       -       -       smtpd
pickup    fifo  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
127.0.0.1:10025 inet    n       -       n       -       -       smtpd -o content_filter=
smtp-amavis unix        -       -       n       -       2       smtp
#
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# maildrop. See the Postfix MAILDROP_README file for details.
#
#maildrop  unix  -       n       n       -       -       pipe
#  flags=DRhu user=amavis argv=/usr/bin/maildrop -w 90 -d ${recipient}
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=postfix argv=/usr/bin/maildrop -w 90 -d ${recipient}
cyrus     unix  -       n       n       -       -       pipe
  user=cyrus argv=/usr/lib/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
vscan     unix  -       n       n       -       10       pipe
  user=vscan argv=/usr/sbin/amavis ${sender} ${recipient}
filter  unix    -       n       n       -       -       pipe
  flags=Rq user=filter argv=/test -t -m /etc/procmailrc ${sender} ${recipient}
procmail  unix  -       n       n       -       -       pipe
  flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient}
In meiner main.cf steht noch:

Code: Select all

alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin
config_directory = /etc/postfix
content_filter = smtp-amavis:[127.0.0.1]:10024
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
defer_transports =
disable_dns_lookups = no
inet_interfaces = all
local_destination_concurrency_limit = 1
mail_owner = postfix
mail_spool_directory = /var/mail
mailbox_command =
mailbox_size_limit = 0
mailbox_transport =
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
masquerade_classes = envelope_sender, header_sender, header_recipient
masquerade_domains =
masquerade_exceptions = root
message_size_limit = 50240000
mydestination = $myhostname                ## $myhostname, localhost.$mydomain
myhostname = nemo.xxxx-xxxxx.com
mynetworks = 127.0.0.0/8, 217.xxx.xxx.xxx/24
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/packages/postfix/README_FILES
relayhost =
relocated_maps = hash:/etc/postfix/relocated
sample_directory = /usr/share/doc/packages/postfix/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = maildrop
smtpd_client_restrictions =
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 450
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:51
virtual_mailbox_base = /usr/local/virtual
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 51
virtual_transport = virtual
virtual_uid_maps = static:51
Ich würde den maildrop gerne vor amavis oder wenns besser ist auch danach druchlaufen lass. Ich hoffe ihr kömmt mit den Infos von mir weiter und könnt mir helfen. Ansonsten kann ich gerne noch mehr Infos geben.

mfg
charlie
Last edited by charlie on 2005-09-09 15:39, edited 1 time in total.

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by stefanpropehan » 2005-09-09 15:11

Hat der Nutzer "postfix" die Rechte "/usr/bin/maildrop" Auszuführen?

Was passiert bei einem:

Code: Select all

su postfix -c "cat mail | /usr/bin/maildrop -d user@domain"
p.s. Bitte poste die Konfigurationsdateien das nächste mal in Code Tags... lässt sich viel besser lesen ;-)

--
Stefan

charlie
Posts: 78
Joined: 2002-09-30 23:36

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by charlie » 2005-09-09 15:37

Hi,

danke für den Hinweis ich gelobe Besserung.

Die Ausgabe von

Code: Select all

su postfix -c "cat mail | /usr/bin/maildrop -d user@domain"
es kommt nix also denke ich der Befehl wurde verarbeitet..

charlie

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by stefanpropehan » 2005-09-09 15:44

Kommt die Mail dann auch entsprechend beim Nutzer an? Was steht im logfile "/export/home/vmail/maildrop.log"?

--
Stefan

charlie
Posts: 78
Joined: 2002-09-30 23:36

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by charlie » 2005-09-09 16:07

HI,

ich habe es eben noch mal kompiliert diesmal mit:

Code: Select all

 ./configure --prefix=/etc/courier --enable-maildirquota --with-trashquota --enable-restrict-trusted=1 --enable-trusted-user='postfix postfix' --enable-trusted-groups='postfix postfix' --enable-maildropmysql --with-mysqlconfig=/etc/courier/maildropmysql.conf --enable-syslog=1 
Hatte da vorher doch noch ein fehler drin. Daber es kommt leider keine Mail an. LOGO habe ich natürlich für user@domain ein richtigen MailAddy genommen.

p.s. im Log seht nix der wurde nicht mal angelegt .... werde ich jetzt mal machen....

charlie

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by stefanpropehan » 2005-09-09 16:12

Ich würde mal sagen deine maildroprc wird gar nicht aufgerufen... schiebe mal die "maildroprc" nach "/etc/courier/maildroprc"... jetzt liegt sie doch in "/etc/", oder?

--
Stefan

charlie
Posts: 78
Joined: 2002-09-30 23:36

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by charlie » 2005-09-09 16:21

HI,

so habe die jetzt in /etc und /etc/courier habe es noch mal auf diesen Inhalt abgeändert.

Code: Select all

logfile "/var/log/maildrop.log" to "${HOME}"
Ich komme irdendwie nicht weiter... :roll:

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by stefanpropehan » 2005-09-09 16:30

Code: Select all

logfile "/var/log/maildrop.log"

log "-----"
log $Maildir

to $Maildir
Schaue mal jetzt ob etwas "gelogt" wird. Es sollte "$Maildir" und nicht "$HOME" heißen...

Noch einmal eine Ausgabe von "su postfix..."

charlie
Posts: 78
Joined: 2002-09-30 23:36

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by charlie » 2005-09-09 16:38

Hi,

ja danke habe ich gemacht, leider immer noch nichts. Der file /var/log/maildrop.log habe ich jetzt angelgt und auf 777 gesetzt. Immer noch kein Eintrag nach einem "su postfix -c "cat mail....."

charlie

p.s.
sag jetzt nicht du bist am ende mit deinem Latein... :cry:

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by stefanpropehan » 2005-09-09 16:45

Da stimmt doch etwas noch nicht.... versuche mal als "root", werden die Abfragen in der Datenbank durchgeführt (in mysql mal die querys mitlogen lassen)?

Code: Select all

cat mail | maildrop -d user@domain

charlie
Posts: 78
Joined: 2002-09-30 23:36

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by charlie » 2005-09-09 16:48

HI,

ja da kommt jetzt .... Häää ???

Code: Select all

cat: mail: Datei oder Verzeichnis nicht gefunden
Invalid user specified.
Ich werde noch mal neu kompilieren und den root und postfix mit rein nehmen...

charlie

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by stefanpropehan » 2005-09-09 16:55

Code: Select all

cat /usr/bin/mail | maildrop -d user@domain

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by stefanpropehan » 2005-09-09 17:03

Invalid user specified.


Deutet darauf hin, das es den Nutzer nicht gibt... d.h. er findet den Nutzer nicht in deiner mysql Datenbank. Log mal die DB-Querys und schaue mal ob du 100% die Richtige Tabellenstruktur mit den richtigen Einträgen hast.

Desweiteren ist es schon so wie ich gedacht habe... der postfix Nutzer kann maildrop nicht ausführen.

Oder klappt das folgende?

Code: Select all

su postfix -c "maildrop -v"
--
Stefan

charlie
Posts: 78
Joined: 2002-09-30 23:36

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by charlie » 2005-09-09 17:19

HI,

ja ich glaube du hast recht, wenn ich den Befehl mit postfix ausführe kommt nix... Wenn ich root oder ein Unix user nehmen bekomme ich eine Ausgabe.
Kann ich postfix nicht explizit erlauben maildrop auszuführen?
Wenn ich jetzt:

Code: Select all

 su charlie -c "cat /usr/bin/mail | /usr/bin/maildrop -d test@test.net"
mach kommt ein

Code: Select all

maildrop: signal 0x0B
zurück.

mfg
charlie
Last edited by charlie on 2005-09-09 17:24, edited 2 times in total.

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by stefanpropehan » 2005-09-09 17:23

Na ja das sind zwar die Grundlagen... "chmod + chown" sind deine Freunde in diesem Fall.

Damit ist aber immer noch nicht dein Problem gelöst das die maildrop die Nutzer nicht in der Datenbank findet... poste mal dein Datenbanklayout und 1 oder 2 Einträge.

--
Stefan

charlie
Posts: 78
Joined: 2002-09-30 23:36

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by charlie » 2005-09-09 17:37

Hi,

die DB sieht so aus:

Code: Select all

Tabelle domain in Datenbank postfix
Feldname 	Typ 	Erlaube NULL? 	Schlüssel 	Standardwert 	Extras
domain 	        varchar(255) 	Nein 	Primär 	  	 
description 	varchar(255) 	Nein 	Keines 	  	 
aliases 	int(10) 	Nein 	Keines 	-1  	 
mailboxes 	int(10) 	Nein 	Keines 	-1  	 
maxquota 	varchar(10) 	Nein 	Keines 	  	 
created 	datetime 	Nein 	Keines 	0000-00-00 00:00:00  	 
modified 	datetime 	Nein 	Keines 	0000-00-00 00:00:00  	 
active 	tinyint(4) 	Nein 	Keines 	1  	 
und meine maildropmysql.conf habe ich so angepasst:

Code: Select all

HOSTNAME                localhost
PORT                    3306
DATABASE                postfix
DBUSER                  postfix
DBPW                    xxxx
DBTABLE                 domain
DEFAULT_UIDNUMBER       51
DEFAULT_GIDNUMBER       51
UIDNUMBER_FIELD         '51'
GIDNUMBER_FIELD         '51'
UID_FIELD               51
GID_FIELD               51
HOMEDIRECTORY_FIELD     concat('/usr/local/virtual/',maildir)
HOMEDIRECTORY_BASE      /user/local/virtual/
MAILDIR_FIELD           maildir
QUOTA_FIELD             maxquota
Aber irgenwas stimmt da noch nicht die Rechte sind doch ok so?

Code: Select all

-rwxr-xr-x    1 root root    166680 2004-08-18 17:04 maildrop
Ich denke mal ich brauche für maildrop ein Unix User und das es so mit postfix nicht geht...

charlie

p.s. Ich fahr mal Heim....
MAILDIR_FIELD ist auch falsch das steht bei mir in einem anderen Table mailbox :roll:

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: Postfix, MySQL, Courier, Maildrop, amavis-new

Post by stefanpropehan » 2005-09-09 17:47

Die Tabelle "mailboxes" wäre gut gewesen! Mit ein paar Einträgen!

Auf jeden Fall fehlt dir das "uid_field" in deiner "maildropmysql.conf"... du brauchst natürlich auch ein Feld in der Tabelle "mailboxes" welches dieses wieder spiegelt (email z.B)

Sorry aber es ist Freitag... mache jetzt Feierabend, ich rate dir noch mal ein paar Howtows im Inet zum Thema zu suchen. Gibt es wie Sand am Meer!

--
Stefan