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