Roundcube Community Forum

 

[gelöst]SMTP mit Multiple Domains und t-online.de

Started by jolic, December 05, 2013, 01:56:58 PM

Previous topic - Next topic

jolic

Hallo,

ich benutze derzeit RC 0.9.5 mit mehreren Server Domains als Auswahl und kann leider nur einen SMTP-Server angeben, da das in einem Array nicht möglich ist.

Hier der entsprechende Auszug aus meiner main.inc.php:
// Array IMAP Server:
$rcmail_config['default_host'] = array (
  'ssl://imap.web.de:993' => 'WEB.de (SSL)',
  'ssl://imap.gmail.com:993' => 'GMail (SSL)',
  'ssl://secureimap.t-online.de:993' => 'T-Online (nur lesen!)'
);


// %z - IMAP domain (IMAP hostname without the first part)
$rcmail_config['smtp_server'] = 'tls://smtp.%z:587';
// das funktioniert leider nicht mit T-Online, weil das dann 'tls://securesmtp.%z:587' heißen muss!



Hat jemand eine Lösung oder Idee dazu?


PS: so funktioniert es leider auch nicht, da %z ein Platzhalter und keine Variable ist?
if ('%z' == 't-online.de' )
{
  $rcmail_config['smtp_server'] = 'tls://securesmtp.%z:587';
}
else
{
  $rcmail_config['smtp_server'] = 'tls://smtp.%z:587';
}




Nachtrag: Sorry wegen der Doppelpost, aber evt. habe ich im englischen Forum mehr User die das lesen.

mbsouth

Quoteif ('%z' == 't-online.de' )
An dieser Stelle ist %z weder "Platzhalter" noch "Variable". Du vergleichst zwei ungleiche STRING´s.

https://github.com/unstko/Roundcube-plugins
RC 0.9.5 [??]

jolic

#2
OK Danke, '%z' kann keine Variable sein.

Das Plugin von unstko funktioniert nicht unter RC 0.9.5 (da hat sich seit 2 Jahren auch nicht mehr getan).

Habe mir nun per quick'n'dirty geholfen indem ich die rcube_utils.php angepasst habe:
public static function parse_host($name, $host = '')
    {
        // .....
   
// Solution for the SMTP Multiple Domains with t-online.de
if ($z == 't-online.de' )
{
$x = 'securesmtp';
}
else
{
$x = 'smtp';
}

        // .....

        $name = str_replace(array('%x', '%n', '%t', '%d', '%h', '%z', '%s'), array($x, $n, $t, $d, $h, $z, $s[2]), $name);
        return $name;
    }


main.inc.php:
//  SMTP t-online.de is 'securesmtp' instead of 'smtp'
//  %x = 'securesmtp' if t-online.de, otherwise 'smtp'
$rcmail_config['smtp_server'] = 'tls://%x.%z:587';


Das ist keine gute Lösung, funktioniert aber und muss bei jedem Update wieder angepasst werden  ;)

Weiss jemand wie ich daraus ein Plugin erstellen kann?
hab hier was gefunden: Doc_Plugins