'My-Very-Own-Webmail'); * * @author Victor Ustugov * @website https://mta.org.ua */ class fix_smtp_server extends rcube_plugin { function init() { $this->add_hook('message_before_send', array($this, 'fix_smtp_server_address')); } function fix_smtp_server_address($args) { $this->load_config(); $rcube = rcube::get_instance(); $smtp_servers = $rcube->config->get('smtp_servers'); if (!empty($smtp_servers) and is_array($smtp_servers)) { $new_smtp_server = false; while (($new_smtp_server === false) and ($smtp_server_item = array_shift($smtp_servers))) { if (!empty($smtp_server_item['equal']) and ($_SESSION[$smtp_server_item['key']] == $smtp_server_item['equal'])) { $new_smtp_server = $smtp_server_item['value']; } elseif (!empty($smtp_server_item['regexp']) and (preg_match($smtp_server_item['regexp'], $_SESSION[$smtp_server_item['key']]))) { $new_smtp_server = $smtp_server_item['value']; } } if ($new_smtp_server !== false) { $smtp_server = $rcube->config->get('smtp_server'); if ($smtp_server != $new_smtp_server) { $rcube->config->set('smtp_server', $new_smtp_server); } } } return $args; } }