[Postfixbuch-users] mysql --> hash ?

Jan Scholten Jammer at gmx.de
Mo Nov 13 20:50:11 CET 2006


Guten Tag Marcel Hartmann

Am Montag, 13. November 2006 um 18:49 schrieben Sie:

>> Da mußt Du schon selber 20 Zeilen Code in den Ring werfen.

> DAS will ich sehen :-) Ich bräuchte dann doch mehr Zeilen dazu, weil
> alles fein in unterschiedliche Hash Table Files käme und so weiter...
rootsvr:~/bin#cat db_sucker.php
<?php
$DB = array(
    'TYPE'    => 'mysql',
    'USER'    => 'mail',
    'PASS'    => 'meinPass',
    'PROTO'    => 'tcp',    // set to "tcp" for TCP/IP
    'HOST'    => 'localhost',
    'NAME'    => 'mail'
);

$verbindung = mysql_connect ($DB['HOST'],$DB['USER'],$DB['PASS']) or
        die ("Keine Verbindung möglich. Benutzername oder Passwort sind falsch");

mysql_select_db($DB['NAME'])
        or die ("Die Datenbank existiert nicht.");

/* Für jedes Werte paar eine Abfrage und dann ein ersetzen aller Results */
    $abfrage = 'SELECT email FROM virtual';
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    {
      $email = $row->email;
      print "$email $email \n"; /* Format für hash: email at domain.tld email at domain.tld */
    }
}
?>

 rootsvr:~/bin# less create_postfix_maps.sh

#!/bin/bash
POSTFIX_PATH=/etc/postfix
MAP_FILE=emails_by_db_sucker
TEMPSUFFIX=temp
# create temporary data file
/home/webmaster/php/bin/php -q /root/bin/db_sucker.php >${POSTFIX_PATH}/${MAP_FILE}.${TEMPSUFFIX}

# create hash files and move to right location:
/usr/sbin/postmap -w hash:${POSTFIX_PATH}/${MAP_FILE}.${TEMPSUFFIX} && \
   mv ${POSTFIX_PATH}/${MAP_FILE}.${TEMPSUFFIX}.db ${POSTFIX_PATH}/${MAP_FILE}.db


Mein Vorschlag.. zwei dateien, eine (db_sucker.php) liest die Datenbank und schreibt eine Datei als
Textfile im Format email at domain.tld email at domain.tld raus, das create_postfix_maps hatte imho ralf
mal gepostet (oder aus dem Buch?) das baut daraus (als Cronjob) das hash-file. ich nutze das bei mir
(abgewandelt) als Domainumleitung {alles}@domain1.de auf {alles}@domain2.de ohne das ich nen catchall brauche.


Was fehlt ist der transport von Primary zu Backup MX Server, sollte aber mit scp einfach gehen..
willst Du emails diverse weiterleiten (mehrere Felder?) passt Du halt $abfrage und die Printzeile
an.
Tu was Du willst ich bin nicht schuld (oder so ähnlich) ich hab mein Script gekürzt, möglich das es
also in der Form so nicht geht.

Jan


-- 
Wissen stimmt melancholisch. - Ob Geist nicht mehr tötet als lebendig macht?

Mit freundlichen Grüßen
Jan Scholten
mailto:Jammer at gmx.de







Mehr Informationen über die Mailingliste Postfixbuch-users