Horde&Imp login

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
r00ty
Posts: 747
Joined: 2003-03-17 15:32
 

Re: Horde&Imp login

Post by r00ty »

so, hier der überarbeitete Beitrag zu Horde 3.0.3 + Imp

im horde/ Verzeichnis eine confixx.inc anlegen

Code: Select all

<?$zeile = explode("@",$val);
if (count($zeile) > 1) {
mysql_connect("localhost", "confixx", "H I E R   M U S S   D A S   P W   H I N ");
mysql_select_db('confixx');
$sql = 'SELECT pop3 FROM `email` WHERE prefix=''.$zeile[0].'' and domain=''.$zeile[1].'' LIMIT 0, 30';
$query = mysql_query($sql);
$result = mysql_fetch_row($query);
mysql_close();
$val = $result[0];}?>
dann im horde/lib/ Verzeichnis die Datei Utils.php editieren:
die function getPostData muss angepasst werden, dass es funktioniert. Deshalb die ganze Funktion mit diesem Code ersetzen: (bei mir ca. Zeile 420)

Code: Select all

    function getPost($var, $default = null)
    {

        if (isset($_POST[$var])) {
                $val = Util::dispelMagicQuotes($_POST[$var]);
                if ($var == 'imapuser') {
                        require  HORDE_BASE . '/confixx.inc';
                }
                return $val;
        } else {
                return $default;
        }
    }
nun kann man sich sowohl mit Emailadressen als als auch mit Postfächern einloggen

chmod 600 confixx.inc
sichert das mysql passwort vor unerwünschtem Ausspähen
(zumindest bei suPhp)
oder packt das file in ein Verzeichnis das per .htaccess gesperrt ist[/quote]
r00ty
Posts: 747
Joined: 2003-03-17 15:32
 

Re: Horde&Imp login

Post by r00ty »

und der Teil um die default-from-adresse zu ändern:
./horde/imp/lib/Identity/imp.php
ca Zeile 222

Code: Select all

    function getFromAddress($ident = null)
    {
        global $imp;

        if (!empty($this->_fromList[$ident])) {
            return $this->_fromList[$ident];
        }

        $val = $this->getValue('from_addr', $ident);
        if (empty($val)) {
// *********** NEU ************
            //$val = $imp['user'];
            include_once HORDE_BASE . '/config/hooks.php';
            if (function_exists('_imp_hook_from_addr')) {
                $val = call_user_func('_imp_hook_from_addr', "");
            } else {
                $val = $imp['user'];
            }
// ********* BIS HIER ********
        }

        if (!strstr($val, '@')) {
            $val .= '@' . $imp['maildomain'];
        }

        $this->_fromList[$ident] = $val;

        return $val;
    }
dann noch in
./horde/config/hooks.php

Code: Select all

if (!function_exists('_imp_hook_from'))  {
     function _imp_hook_from_addr ($imp) {
        global $imp;
        if ($imp['server'] != 'localhost') {
            return $imp['user'];
        }
        $dbserver = 'localhost'; $dbuser = 'confixx'; $passw = 'D A S   D B   P A S S W O R T';
        $link = mysql_connect($dbserver,$dbuser,$passw );
        mysql_select_db('confixx');
        $query_from = "SELECT prefix,domain FROM email WHERE pop3 = '".$imp['user']."'";
        $result = mysql_query($query_from);
//      while ($row = mysql_fetch_array($result)) { //mit mehreren Adressen kann horde/imp nicht umgehen
        $row = mysql_fetch_array($result);
        if ($row[0] == "*") {
        $from_email = "catchall@".$row[1];
        } else {
        $from_email = $row[0]."@".$row[1]; }
        $name=$from_email;// } //hier fehlt noch ein punkt
        mysql_free_result($result);
       return (empty($name) ? $imp['user'] : $name);
     }
}
that's it
hotzi
Posts: 197
Joined: 2004-04-14 09:04
Location: Bayern, Sulzemoos
Contact:
 

Re: Horde&Imp login

Post by hotzi »

Hallo, super Arbeit!

Zum Thema Sicherheit habe ich mir einen MySQL Benutzer angelegt, der nur Rechte besitzt, ein Select auf die eine Tabelle da zu machen, gibt mir irgendwie ein besseres Gefühl ;-)

Die Sache funzt super, es wäre aber wirklich klasse, wenn man doch mehr als nur einen Absender benutzen könnte.

Code: Select all

//      while ($row = mysql_fetch_array($result)) { //mit mehreren Adressen kann horde/imp nicht umgehen 
Das aktuelle IMP (wenn ich mich recht entsinne auch das alte) unterstützt ja bei händisch angelegten Identitäten mehrere Absender.
Gibts da mittlerweise was Neues, hat schon jemand etwas umgesetzt, dass alle Emailabsender aus der Confixx DB in Horde verfügbar macht?

Danke und Gruß

Andre
hotzi
Posts: 197
Joined: 2004-04-14 09:04
Location: Bayern, Sulzemoos
Contact:
 

Re: Horde&Imp login

Post by hotzi »

...Auch ne gute Sache wäre es, wenn man verhindern könnte, dass sich jemand mit nem Account, der kein Postfach ist, also zum Beispiel als web1 anmelden kann.
r00ty
Posts: 747
Joined: 2003-03-17 15:32
 

Re: Horde&Imp login

Post by r00ty »

Hallo auch...
Ich kapier nicht ganz was du damit bezwecken willst dass sich jemand einloggen kann der kein Postfach hat ?
hotzi
Posts: 197
Joined: 2004-04-14 09:04
Location: Bayern, Sulzemoos
Contact:
 

Re: Horde&Imp login

Post by hotzi »

Hallo,

Als web1 kann man sich ja einloggen, da es den Account ja gibt, und confixx(oder wer auch immer) auch unter /var/spool/mail eine mbox erzeugt hat. Nur würde der IMAP Server dann zusätzliche Ordner/Dateien halt im Web Verzeichnis anlegen wollen (was die Rechte aber eh verhindern).

Ich habe den Fall gehabt (von jemandem der in der EDV arbeitet :evil:)...

Aber naja, wurscht, so wild ist das nicht, ist nicht so wichtig... Die andere Sache, dass alle dem Postfach zugeordneten Adressen als Absender automatisch zur Verfügung stehen, wäre ne gute Sache, die ich selbst wohl nicht hinbekomme, dazu reichen meine Kenntnisse nicht aus.

Gruß

Andre
r00ty
Posts: 747
Joined: 2003-03-17 15:32
 

Re: Horde&Imp login

Post by r00ty »

Okay, hier mal wieder ein neuer Post - denn für confixx 3.10 hat sich ein paar Sachen geändert:

gestest mit suse 9.1 + Horde 3.0.3 + Imp

T E I L I

im horde/config/ Verzeichnis eine confixx.inc anlegen

Code: Select all

<?
$zeile = explode("@",$val);
if (count($zeile) > 1) {
  $zeile[1] = strtolower($zeile[1]);
  mysql_connect("localhost", "confixx", "H I E R   M U S S   D A S   P W   H I N");
  mysql_select_db('confixx');
  $subsql = 'SELECT ident FROM email WHERE prefix=''.$zeile[0].'' AND domain=''.$zeile[1].'' LIMIT 0, 1';
  $query = mysql_query($subsql);
  $result = mysql_fetch_row($query);
  if (($result[0] > 0) && ($result[0] < 1000)) {
    $sql = 'SELECT pop3 FROM email_forward WHERE email_ident = '.$result[0].' AND pop3 REGEXP '^web[[:digit:]]{1,3}p[[:digit:]]{1,3}$' LIMIT 0, 30';
    $query = mysql_query($sql);
    $result = mysql_fetch_row($query);
  } else {
    $val = '';
  }
  mysql_close();
  $val = $result[0];
}
?>
dann im horde/lib/Horde/ Verzeichnis die Datei Util.php editieren:
die function getPostData muss angepasst werden, dass es funktioniert. Deshalb die ganze Funktion mit diesem Code ersetzen: (bei mir ca. Zeile 420)

Code: Select all

    function getPost($var, $default = null)
    {

        if (isset($_POST[$var])) {
                $val = Util::dispelMagicQuotes($_POST[$var]);
                if ($var == 'imapuser') {
                        require  HORDE_BASE . '/config/confixx.inc';
                }
                return $val;
        } else {
                return $default;
        }
    }
nun kann man sich sowohl mit Emailadressen als als auch mit Postfächern einloggen

chmod 600 confixx.inc
sichert das mysql passwort vor unerwünschtem Ausspähen

T E I L II

und der Teil um die default-from-adresse zu ändern:
./horde/imp/lib/Identity/imp.php
ca Zeile 222

Code: Select all

    function getFromAddress($ident = null)
    {
        global $imp;

        if (!empty($this->_fromList[$ident])) {
            return $this->_fromList[$ident];
        }

        $val = $this->getValue('from_addr', $ident);
        if (empty($val)) {
// *********** NEU ************
            //$val = $imp['user'];
            include_once HORDE_BASE . '/config/hooks.php';
            if (function_exists('_imp_hook_from_addr')) {
                $val = call_user_func('_imp_hook_from_addr', "");
            } else {
                $val = $imp['user'];
            }
// ********* BIS HIER ********
        }

        if (!strstr($val, '@')) {
            $val .= '@' . $imp['maildomain'];
        }

        $this->_fromList[$ident] = $val;

        return $val;
    }
dann noch in
./horde/config/hooks.php

Code: Select all

if (!function_exists('_imp_hook_from'))  {
     function _imp_hook_from_addr ($imp) {
        global $imp;
        if ($imp['server'] != 'localhost') {
            return $imp['user'];
        }
        $dbserver = 'localhost'; $dbuser = 'confixx'; $passw = 'D A S   D B   P A S S W O R T';
        $link = mysql_connect($dbserver,$dbuser,$passw );
        mysql_select_db('confixx');
        $subsql = "SELECT email_ident FROM email_forward WHERE pop3='".$imp['user']."'";
        $query = mysql_query($subsql);
        $result = mysql_fetch_row($query);

        if (($result[0] > 0) && ($result[0] < 1000)) {
            $sql = "SELECT prefix, domain FROM email WHERE Ident = $result[0]";
            $result = mysql_query($sql);
            $query = mysql_query($sql);

            $row = mysql_fetch_array($query);
            if ($row[0] == "*") {
                $from_email = "catchall@".$row[1];
            } else {
                $from_email = $row[0]."@".$row[1];
            }
            $name=$from_email;
        }
        mysql_free_result($result);
        return (empty($name) ? $imp['user'] : $name);
    }
}
that's it
Last edited by r00ty on 2006-03-29 13:29, edited 3 times in total.
hotzi
Posts: 197
Joined: 2004-04-14 09:04
Location: Bayern, Sulzemoos
Contact:
 

Re: Horde&Imp login

Post by hotzi »

http://forum.webhostlist.de/show/showth ... ight=horde

Hier gibts noch Infos, wie alle unter Confixx angelegten Emailadressen auch in Horde / IMP verwendet werden können.
r00ty
Posts: 747
Joined: 2003-03-17 15:32
 

Re: Horde&Imp login

Post by r00ty »

ja sauber - das ist doch mal schön...
und das mit dem Inner Join ich auch eleganter gemacht...
aber nichts desto trotz erkennt man noch von wem der Code mal ursprünglich war ;-)
hotzi
Posts: 197
Joined: 2004-04-14 09:04
Location: Bayern, Sulzemoos
Contact:
 

Re: Horde&Imp login

Post by hotzi »

r00ty wrote:ja sauber - das ist doch mal schön...
und das mit dem Inner Join ich auch eleganter gemacht...
aber nichts desto trotz erkennt man noch von wem der Code mal ursprünglich war ;-)
Keine Ahnung, aber der Threadgründer hat doch geschrieben, dass er es von hier hat, oder (bin gerader per V90 Modem da und mag nicht den ganzen Thread runterladen)?

Die Sache mit den multiple Absendern sollte aber auf SiData´s "Mist" gewachsen sein, wenn ich mich nicht irre, ich hab dort nur das mit dem Inner Join für die neueren Confixx Versionen rein.

Gruß

Hotzi
r00ty
Posts: 747
Joined: 2003-03-17 15:32
 

Re: Horde&Imp login

Post by r00ty »

ja, da passt schon - ich bin ja froh wenns noch ein paar Features hinzufügt - und wie es jetzt bei webhotlist gelöst ist ist wirklich schön
hotzi
Posts: 197
Joined: 2004-04-14 09:04
Location: Bayern, Sulzemoos
Contact:
 

Re: Horde&Imp login

Post by hotzi »

Sidata und ich wollten gewisse Ã?nderungen sowieso mal zusammenfassen und in einer Anleitung posten, wenn wir da Deinen Code mit reinnehmen könnten, wärs ne gute Sache.
mscap
Posts: 5
Joined: 2006-01-10 17:27
 

confixx 3.1.2

Post by mscap »

Hallo,

ich bin am verzweifeln. Ich habe versucht den Login auf die beschriebene Art und Weise zu realisieren.

Ich benutze allerdings
Confixx 3.1.2
unter Suse 9.0

und

Horde 3.0.9
IMP H3 4.0.4

Die verbindung zur Datenbank funktioniert auch. Sobal ich E-Mail Adresse & Passwort im Login eingebe bekomme ich die Meldung, dass das Passwort nicht richtig sei. Jedoch ändert er in diesem Moment die eigegebene E-Mail Adresse in das passende (und korrekte) E-Mail konto , also aus 123@abc.de wird web0p3.

Hat jemand einen Ansatz für mich? Hat sich evtl. bei den Passwörter mit der neuen Confixx Version etwas geändert?

Vielen Dank für die Mühe

Gruss
Sven
r00ty
Posts: 747
Joined: 2003-03-17 15:32
 

Re: Horde&Imp login

Post by r00ty »

was passiert wenn du dich direkt mit web0p3 anmeldest und dem richtigen Passwort, tuts dann ?
was sagt /var/log/mail
was sagt /var/log/messages
was sagt dein Horde-Log (evtl. /tmp/horde.log) ?
mscap
Posts: 5
Joined: 2006-01-10 17:27
 

Re: Horde&Imp login

Post by mscap »

/var/log/mail
Sagt nichts besonderes. Nur das ich ein Problem mit spamassassin und der _USER_ Variable habe.


/var/log/messages
sagt auch nichts dazu

Horde-Log

:oops: Da wird es doch schon ein wenig deutlicher. Ich glaube ich habe vergessen die UW-IMAP c-client library zun installieren. Bekomme das aber auch grad nicht gebacken. Ich dreh hier noch durch.

Jan 10 23:20:43 HORDE [error] [imp] FAILED LOGIN xxx.xxx.xxx.xxx to imap.example.cc
om:143[imap/notls] as web0p3 [on line 237 of "/srv/www/htdocs/confixx/html/horde
/imp/lib/Auth/imp.php"]

... ach ja, das einloggen mit web3p0 klappt natürlich auch nicht
hotzi
Posts: 197
Joined: 2004-04-14 09:04
Location: Bayern, Sulzemoos
Contact:
 

Re: Horde&Imp login

Post by hotzi »

mscap wrote:/var/log/mail
Sagt nichts besonderes. Nur das ich ein Problem mit spamassassin und der _USER_ Variable habe.


/var/log/messages
sagt auch nichts dazu

Horde-Log

:oops: Da wird es doch schon ein wenig deutlicher. Ich glaube ich habe vergessen die UW-IMAP c-client library zun installieren. Bekomme das aber auch grad nicht gebacken. Ich dreh hier noch durch.

Jan 10 23:20:43 HORDE [error] [imp] FAILED LOGIN xxx.xxx.xxx.xxx to imap.example.cc
om:143[imap/notls] as web0p3 [on line 237 of "/srv/www/htdocs/confixx/html/horde
/imp/lib/Auth/imp.php"]

... ach ja, das einloggen mit web3p0 klappt natürlich auch nicht
Stand da wirklich:

imap.example.com:143 ??

Welche Distro verwendest Du eigentlich?

Gruß

Hotzi
mscap
Posts: 5
Joined: 2006-01-10 17:27
 

Re: Horde&Imp login

Post by mscap »

ja stand es.

ich hab es einfach kopiert. welche bitte was benutzte ich?
hotzi
Posts: 197
Joined: 2004-04-14 09:04
Location: Bayern, Sulzemoos
Contact:
 

Re: Horde&Imp login

Post by hotzi »

Rofl, sorry, aber das ist peinlich. Schau mal die /etc/horde/imp4/servers.php an.

Ich möchte mal bemerken, dass man Fehlermeldungen auch lesen sollte und versuchen sollte, diese zu verstehen, oder ist example.com Deine Domain?
mscap
Posts: 5
Joined: 2006-01-10 17:27
 

Re: Horde&Imp login

Post by mscap »

ich habs gelesen, konnte nur die einstellungen nicht finden ... aber peinlich ist es wirklich

naja aber so funktioniert es jetzt und ich kann endlich weitermachen :-)


VIELEN DANK

richtig geil wäre es nur gewesen, wenn ich wirklich example als domain gehabt hätte ...
hotzi
Posts: 197
Joined: 2004-04-14 09:04
Location: Bayern, Sulzemoos
Contact:
 

Re: Horde&Imp login

Post by hotzi »

Ja dann hätts bei wildcard DNS sofort gefunzt
mscap
Posts: 5
Joined: 2006-01-10 17:27
 

Re: Horde&Imp login

Post by mscap »

jetzt läuft alles :-)

frage mich nur ob es auch möglich ist, dass horde an sich die zugangsdaten auch aus confixx zieht.
hotzi
Posts: 197
Joined: 2004-04-14 09:04
Location: Bayern, Sulzemoos
Contact:
 

Re: Horde&Imp login

Post by hotzi »

mscap wrote:jetzt läuft alles :-)

frage mich nur ob es auch möglich ist, dass horde an sich die zugangsdaten auch aus confixx zieht.
Horde auf IMP Authentifizierung einstellen.
Post Reply