Toon posts:

[postfix] Virtual tabel fout/alias

Pagina: 1
Acties:
  • 85 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb op dit moment postfix met mysql-support draaien.
Dit bestaat uit:
virtual_mailbox_map met de volgende tabel:
code:
1
2
3
id           password  uid  gid  home  maildir  
user@domein.nl   ***     5000 1003 / /var/mail/virtual/user/ 
postmaster@domein.nl ***     5001 1003 / /var/mail/virtual/postmaster/

en een gewone virtual_map met de volgende tabel:
code:
1
2
alias   rcpt  
@domein.nl postmaster@domein.nl

Nu mag ik er van uit gaan (neem ik aan) dat hij eerst in de bovenstaande (virtual_mailbox_map) kijkt en dan pas in de onderstaande (virtual_map) zodat als ik een mail stuur naar user@domein.nl dat die user hem ontvangt en dat ie niet wordt doorgestuurd naar postmaster@domein.nl en dit gebeurd dus wel :( Is er een andere oplossing om een "catch-all" toe te passen, zodat ik op 1 gebruiker alle mail kan ontvangen waarvoor geen gebruikers zijn gedefineerd?


Stukje uit virutal nog:
Aldus man 5 virtual
code:
1
2
3
@domain address, address, ...
      Mail  for  any  user  in  domain  is  redirected to
      address.  This form has the lowest precedence.

Verwijderd

[forum=23] -> [forum=24] op verzoek van topicstarter :)

Verwijderd

Topicstarter
Ik zit nu te denken om een regexp te gebruiken echter het probleem is virtual_mailbox_maps ondersteunt geen regexps aldus man 8 virtual....

nog meer mensen een idee? of de oplossing? >:)

Verwijderd

Topicstarter
Ik heb ff gekeken voor een simpele workaround hier om en dit is het nu geworden (gelijk postfix tutorial in 1 zo wat :) )

main.cf
code:
1
2
3
4
5
6
7
local_transport = virtual
virtual_mailbox_base = /
virtual_uid_maps = mysql:/usr/local/etc/postfix/ids.cf
virtual_gid_maps = static:1003
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virt.cf
virtual_maps = mysql:/usr/local/etc/postfix/bestaand.cf mysql:/usr/local/etc/pos
tfix/virtual.cf

ids.cf
code:
1
2
3
4
5
6
7
user = <username>
password = <password>
dbname = <dbname>
table = postfix
select_field = uid
where_field = id
hosts = localhost

mysql_virt.cf
code:
1
2
3
4
5
6
7
user = <username>
password = <password>
dbname = <dbname>
table = postfix
select_field = maildir
where_field = id
hosts = localhost

bestaand.cf
code:
1
2
3
4
5
6
7
user = <username>
password = <password>
dbname = <dbname>
table = postfix
select_field = id
where_field = id
hosts = localhost

virtual.cf
code:
1
2
3
4
5
6
7
user = <username>
password = <password>
dbname = <dbname>
table = virtual
select_field = rcpt
where_field = alias
hosts = localhost

MySQL tables
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE postfix (
  id char(128) NOT NULL,
  password char(128) NOT NULL,
  uid int(10) NOT NULL,
  gid int(10) NOT NULL default '1003',
  home char(255) NOT NULL,
  maildir char(255) NOT NULL
) TYPE=MyISAM;

CREATE TABLE virtual (
  alias varchar(255) NOT NULL,
  rcpt varchar(255) NOT NULL,
  PRIMARY KEY  (alias)
) TYPE=MyISAM;

Nu kan je dus in je virtual toevoegen
alias: @domein.nl
rcpt: postmaster@domein.nl (de ontvanger)

Indien er geen gebruiker is gevonden in virtual_mailbox_maps dan wordt die uiteindelijk verstuurd naar postmaster@domein.nl

dit is dus een oplossing voor een catch-all in postfix met virtual_mailbox_maps...

Verwijderd

wow :) zwaar roelend!! :) net wat ik zocht :*

  • Mark
  • Registratie: Juni 1999
  • Laatst online: 22:58
Is dit niet een beetje moeilijke oplossing ???

Ik draai het zo:

main.cf:
code:
1
2
3
4
5
transport_maps = mysql:/etc/postfix/transport.cf
virtual_uid_maps = mysql:/etc/postfix/ids.cf
virtual_gid_maps = mysql:/etc/postfix/ids.cf
virtual_mailbox_maps = mysql:/etc/postfix/aliases.cf
virtual_maps = mysql:/etc/postfix/remote_aliases.cf

transport.cf (ipv de normale transport file):
code:
1
2
3
4
5
6
7
user = <user>
password = <password>
dbname = <dbnaam>
table = domeinen
select_field = transport
where_field = domein
hosts = localhost

ids.cf (voor opsnorren van UID en GID):
code:
1
2
3
4
5
6
7
user = <user>
password = <password>
dbname = <dbnaam>
table = users
select_field = gid
where_field = user
hosts = localhost

aliases.cf (voor het mappen van mail-adres naar directory)
code:
1
2
3
4
5
6
7
user = <user>
password = <password>
dbname = <dbnaam>
table = users
select_field = maildir
where_field = user
hosts = localhost

remote_aliases.cf (voor de aliassen):
code:
1
2
3
4
5
6
7
user = <user>
password = <password>
dbname = <dbnaam>
table = email_aliases
select_field = rcpt
where_field = alias
hosts = localhost

In de remote alias tabel kan ik nu gewoon een catchall opvoeren @domein.nl welke ik laat verwijzen naar een mailadres (en directory) welke in mijn alias tabel staat....

Verwijderd

Topicstarter
wat jij doet bevat het probleem de catchall werkt maar de andere users krijgen geen mail in het domein... die je gedefineerd hebt in je virtual_mailbox_maps....


lezen voordat je antwoord, het "probleem" is bevestigd door Wietse dus dat zegt genoeg denk ik? en hij beschouwt het nog niet als ernstig probleem....

Verwijderd

nice dit zal ik ook ff bouwen :)

Verwijderd

dit werk als een trein hier :-) thnx voor de tip

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Oke ik heb zelf ook een topic gestart een paar dagen geleden, ik kwam er dus niet uit met postfix + mysql.
Nu heb ik de bovenstaande oplossing van caesium geprobeerd.
Maar er zijn mij wat dingen onduidelijk:

1) is dat de enige inhoud van al die .cf files? want standaard staat er bijv meer in die main.cf. Zoals het domein waarvoor jij de 'eind' mailserver bent zeg maar.

2) Hoe voeg ik in deze situatie nu een user toe? en wat zijn al die database fields wat ik dan moet vullen?

3) Kan ik met deze oplossing ook mailserver zijn voor 2 domeinen?

Goede documentatie vinden over dit geheel is best lastig. Tenminst ik heb gezocht en kwam overal van die kleine stukjes tegen. Die probeer ik nu in elkaar te hangen.

  • luc
  • Registratie: Maart 2000
  • Niet online

luc

Op woensdag 01 mei 2002 09:45 schreef Trax_Digitizer het volgende:
Oke ik heb zelf ook een topic gestart een paar dagen geleden, ik kwam er dus niet uit met postfix + mysql.
Nu heb ik de bovenstaande oplossing van caesium geprobeerd.
Maar er zijn mij wat dingen onduidelijk:

1) is dat de enige inhoud van al die .cf files? want standaard staat er bijv meer in die main.cf. Zoals het domein waarvoor jij de 'eind' mailserver bent zeg maar.

2) Hoe voeg ik in deze situatie nu een user toe? en wat zijn al die database fields wat ik dan moet vullen?

3) Kan ik met deze oplossing ook mailserver zijn voor 2 domeinen?

Goede documentatie vinden over dit geheel is best lastig. Tenminst ik heb gezocht en kwam overal van die kleine stukjes tegen. Die probeer ik nu in elkaar te hangen.
Je kan natuurlijk ook eerst proberen postfix zonder mysql aan de praat te krijgen :?
En er zijn genoeg howto's over dit onderwerp te vinden, in een van hen staat zelfs letterlijk beschreven waar die db velden voor zijn dus misschien moet je toch eerst even een en ander gaan lezen voordat je hier vragen komt stellen :?

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Misschien dat ik dat maar eens moet doen. Werkt postfix dan standaard ook met mysql?

Verwijderd

http://kummefryser.dk/HOWTO/mail/postfix_mysql.html
http://www.sweeney.demon.co.uk/pfix_imap_virtual.html

Ik heb die laatste setup draaien...werkt erg fijn. Zelf een webadmin er voor gemaakt om de mailboxen / aliasen te beheren.

Postfix werkt _NIET_ standaard met MySQL.

Die transport_maps zorgt voor de domeinen waarvoor je host, kun je dus ook gewoon een entry voor maken in je database. Maar dat staat allemaal uitgelegd in de bovenste HOWTO, evenals de database layout. Als je de te bovenstaande howto's combineert en je gebruikt de info van Caesium hierboven heb je een prima mailserver :)

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Ik zie dat jij courier gebruikt als IMAP Daemon. Ik snap het verband niet helemaal. die courier verzorgt dan IMAP/POP3, en die MTA verzorgt het lokale gebeuren of hoe moet ik dat zien?

Verwijderd

Op woensdag 01 mei 2002 12:49 schreef Trax_Digitizer het volgende:
Ik zie dat jij courier gebruikt als IMAP Daemon. Ik snap het verband niet helemaal. die courier verzorgt dan IMAP/POP3, en die MTA verzorgt het lokale gebeuren of hoe moet ik dat zien?
yeps, courier en postfix maken dus samen gebruik van 1 table...

Verwijderd

werkt iid erg fijn

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Waar is deze nou voor:
transport_maps=mysql:/etc/postfix/transport.cf

bij de een staat ie wel bij de ander niet

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Dit staat in mijn syslog als ik postfix start:

postfix[5229]: fatal: chdir(/usr/libexec/postfix): No such file or directory

Postfix crashed dus meteen na starten!

Verwijderd

Op woensdag 01 mei 2002 14:05 schreef Trax_Digitizer het volgende:
Waar is deze nou voor:
transport_maps=mysql:/etc/postfix/transport.cf

bij de een staat ie wel bij de ander niet
Je kan de domeinen die je host ook in je main.cf aangeven...via die MySQL transports is wel makkelijk, kun je makkelijk domeinen toevoegen (via bv webadmin)

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Oke, ik heb het volgende en het werkt niet........ik zie het effe niet meer...dus misschien dat iemand aan de hand van dit mij weer op weg dan helpen:

DATABASE
code:
1
2
3
4
5
6
7
8
CREATE TABLE post_users (
  id char(128) NOT NULL default '',
  password char(128) NOT NULL default '',
  uid int(10) NOT NULL default '0',
  gid int(10) NOT NULL default '1003',
  home char(255) NOT NULL default '',
  maildir char(255) NOT NULL default ''
) TYPE=MyISAM;


code:
1
2
3
4
5
CREATE TABLE remote_aliases (
  alias varchar(255) NOT NULL default '',
  rcpt varchar(255) default NULL,
  PRIMARY KEY  (alias)
) TYPE=MyISAM;


code:
1
2
3
4
5
CREATE TABLE transport (
  domain varchar(255) NOT NULL default '',
  transport varchar(8) default NULL,
  PRIMARY KEY  (domain)
) TYPE=MyISAM;


code:
1
2
3
4
5
CREATE TABLE virtual (
  alias varchar(255) NOT NULL default '',
  rcpt varchar(255) NOT NULL default '',
  PRIMARY KEY  (alias)
) TYPE=MyISAM;

POSTFIX

main.cf
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
myhostname = server.domain.com
mydomain = domain.com
mynetworks = 192.168.1.0/24, 127.0.0.0/8
mydestination = $myhostname, localhost.$mydomain, $mydomain, mail.$mydomain, www.$mydomain, localhost, domain2.com
smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination

local_transport=virtual
transport_maps=mysql:/etc/postfix/transport.cf
virtual_uid_maps=mysql:/etc/postfix/ids.cf
virtual_gid_maps=static:1003
virtual_mailbox_base=/var/spool/postfix/virtual/
virtual_mailbox_maps=mysql:/etc/postfix/mysql_virt.cf
virtual_maps=mysql:/etc/postfix/bestaand.cf mysql:/etc/postfix/virtual.cf

bestaand.cf
code:
1
2
3
4
5
6
7
user = postfix
password = ***
dbname = mail
table = post_users
select_field = id
where_field = id
hosts = localhost

ids.cf
code:
1
2
3
4
5
6
7
user=postfix
password=***
dbname=mail
table=post_users
select_field=uid
where_field=id
hosts=localhost

mysql_virt.cf
code:
1
2
3
4
5
6
7
user=postfix
password=***
dbname=mail
table=post_users
select_field=maildir
where_field=id
hosts=localhost

transport.cf
code:
1
2
3
4
5
6
7
user = postfix
password = ***
dbname = mail
table = transport
select_field = transport
where_field = domain
hosts = localhost

virtual.cf
code:
1
2
3
4
5
6
7
user = postfix
password = ***
dbname = mail
table = virtual
select_field = rcpt
where_field = alias
hosts = localhost

master.cf
code:
1
virtual    unix    -     n   n   -   -   virtual

.......zo dat was het dan, ik heb COURIER effe buiten beschouwing gelaten. Ik heb imap van courier exact geconfiged zoals op de website gegeven was...

Verwijderd

Op donderdag 02 mei 2002 11:50 schreef Trax_Digitizer het volgende:
...heel verhaal...
Wat werkt er niet dan?

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Een van de dingen die nu bijvoorbeeld niet werken zijn de smtp server van postfix zelf.......als ik netstat -ldp doe dan staat ie er in ieder geval niet tussen.......
En met telnet connecten naar localhost geef een connection refused melding..

edit:

Oh ja en ik weet ook niet zeker of ik nu alles files en database tables heb die er nodig zijn.....misschien ontbreekt er nog een....

Verwijderd

wat zeggen je logfiles?

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

mail.log: postfix/master[12670]: daemon started

syslog: postfix/master[12670]: daemon started

verder zie ik nergens iets staan over postfix

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Oke heb het probleem gevonden, mijn master.cf was niet compleet. Heb nu ergens de standaardfile vandaan gehaald maar nu zit mijn mail.log vol met errors.

Deze processen draaien nu, en dat komt doordat ik dat specificeer in de master.cf:
code:
1
2
3
4
5
6
7
8
postfix  13140  0.0  0.2  2452 1000 ?     S    13:32   0:00 pickup -l -t fifo -u -c
postfix  13141  0.0  0.2  3064 1120 ?     S    13:32   0:00 qmgr -l -t fifo -u -c
postfix  13142  0.0  0.3  3108 1212 ?     S    13:32   0:00 cleanup -t unix -u -c
postfix  13143  0.0  0.2  3036 1096 ?     S    13:32   0:00 trivial-rewrite -n rewrite -t unix -u -c
postfix  13144  0.0  0.2  2448 1004 ?     S    13:32   0:00 bounce -t unix -u -c
postfix  13145  0.0  0.2  2440  964 ?     S    13:32   0:00 bounce -t unix -u -c
postfix  13146  0.0  0.3  3120 1216 ?     S    13:32   0:00 cleanup -t unix -u -c
postfix  13150  0.0  0.3  3152 1220 ?     S    13:33   0:00 smtpd -n smtp -t inet -u -c

[edit]

Enkele errors:
code:
1

postfix/postfix-script: starting the Postfix mail system
postfix/master[13693]: daemon started
postfix/qmgr[13696]: 40D5B33224: from=<www-data@domein.net>, size=579, nrcpt=1 (queue active)
postfix/trivial-rewrite[13698]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
postfix/trivial-rewrite[13698]: fatal: transport table lookup problem
postfix/pickup[13695]: warning: 047C233540: message has been queued for 1 days
postfix/pickup[13695]: 047C233540: uid=33 from=<www-data>
postfix/qmgr[13696]: warning: premature end-of-input from private/rewrite socket while reading input attribute name
postfix/master[13693]: warning: process /usr/lib/postfix/trivial-rewrite pid 13698 exit status 1
postfix/master[13693]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling
[/code]

  • Profidiam
  • Registratie: December 2001
  • Laatst online: 25-01-2025

Profidiam

Ellenface

dit heeft iets te maken met chrooted jail, heb hetzelfde probleem, en lukt me niet het op te lossen :-(

Da RuBBaH DuCK SKWaT - Ellen what did ye do ?- een test


  • Predator
  • Registratie: Januari 2001
  • Laatst online: 08:30

Predator

Suffers from split brain

Daarom hoef je dit oud topic toch niet te schoppen :?

Je kan een nieuw topic openen in NOS :)

Everybody lies | BFD rocks ! | PC-specs

Pagina: 1

Dit topic is gesloten.