addHook('filter.smtp-credentials', 'FilterSmtpCredentials'); $this->addHook('filter.imap-credentials', 'FilterImapCredentials'); } /** * This function detects the IMAP Host, and if it is set to "auto", replaces it with the MX or email domain. * * @param \RainLoop\Model\Account $oAccount * @param array $aImapCredentials */ public function FilterImapCredentials($oAccount, &$aImapCredentials) { if ($oAccount instanceof \RainLoop\Model\Account && \is_array($aImapCredentials)) { // Check for mail.$DOMAIN as entered value in RL settings if (!empty($aImapCredentials['Host']) && 'auto' === $aImapCredentials['Host']) { $domain = substr(strrchr($oAccount->Email(), "@"), 1); $mxhosts = array(); if(getmxrr($domain, $mxhosts) && sizeof($mxhosts) > 0) { $aImapCredentials['Host'] = $mxhosts[0]; } else { $aImapCredentials['Host'] = $this->imap_prefix.$domain; } } } } /** * This function detects the SMTP Host, and if it is set to "auto", replaces it with the MX or email domain. * * @param \RainLoop\Model\Account $oAccount * @param array $aSmtpCredentials */ public function FilterSmtpCredentials($oAccount, &$aSmtpCredentials) { if ($oAccount instanceof \RainLoop\Model\Account && \is_array($aSmtpCredentials)) { // Check for mail.$DOMAIN as entered value in RL settings if (!empty($aSmtpCredentials['Host']) && 'auto' === $aSmtpCredentials['Host']) { $domain = substr(strrchr($oAccount->Email(), "@"), 1); $mxhosts = array(); if(getmxrr($domain, $mxhosts) && sizeof($mxhosts) > 0) { $aSmtpCredentials['Host'] = $mxhosts[0]; } else { $aSmtpCredentials['Host'] = $this->smtp_prefix.$domain; } } } } }