/** * @param null|string $mode * @throws MailerException */ public function setMode($mode = null) { if (empty($mode)) { $mode = OutboundEmailConfigurationPeer::MODE_SMTP; } parent::setMode($mode); }
/** * @access private * @param User $user required * @param array $configurations required * @param OutboundEmail $outboundEmail required * @param Localization $locale * @param string $charset * @return OutboundEmailConfiguration */ public static function buildOutboundEmailConfiguration(User $user, $configurations, $outboundEmail, Localization $locale = null, $charset = null) { $outboundEmailConfiguration = null; $mode = strtolower($outboundEmail->mail_sendtype); // setup the mailer's known configurations based on the type of mailer switch ($mode) { case self::MODE_SMTP: $outboundEmailConfiguration = new OutboundSmtpEmailConfiguration($user); $outboundEmailConfiguration->setHost($outboundEmail->mail_smtpserver); $outboundEmailConfiguration->setPort($outboundEmail->mail_smtpport); if ($outboundEmail->mail_smtpauth_req) { // require authentication with the SMTP server $outboundEmailConfiguration->setAuthenticationRequirement(true); $outboundEmailConfiguration->setUsername($outboundEmail->mail_smtpuser); $outboundEmailConfiguration->setPassword($outboundEmail->mail_smtppass); } // determine the appropriate encryption layer for the sending strategy if ($outboundEmail->mail_smtpssl == 1) { $outboundEmailConfiguration->setSecurityProtocol(OutboundSmtpEmailConfiguration::SecurityProtocolSsl); } elseif ($outboundEmail->mail_smtpssl == 2) { $outboundEmailConfiguration->setSecurityProtocol(OutboundSmtpEmailConfiguration::SecurityProtocolTls); } break; default: $outboundEmailConfiguration = new OutboundEmailConfiguration($user); break; } $outboundEmailConfiguration->setMode($mode); // hostname for SMTP HELO $hostname = !empty($GLOBALS['sugar_config']['helo_hostname']) ? $GLOBALS['sugar_config']['helo_hostname'] : $GLOBALS['sugar_config']['host_name']; $outboundEmailConfiguration->setHostname($hostname); if (!empty($configurations["config_id"])) { $outboundEmailConfiguration->setConfigId($configurations["config_id"]); } if (!empty($configurations["config_type"])) { $outboundEmailConfiguration->setConfigType($configurations["config_type"]); } if (!empty($outboundEmail->name)) { $outboundEmailConfiguration->setConfigName($outboundEmail->name); } if (!empty($configurations["inbox_id"])) { $outboundEmailConfiguration->setInboxId($configurations["inbox_id"]); } if (!empty($configurations["inbound_ids"])) { $outboundEmailConfiguration->setInboundIds($configurations["inbound_ids"]); } if (!empty($configurations["from_email"])) { $outboundEmailConfiguration->setFrom($configurations["from_email"], $configurations["from_name"]); } if (!empty($configurations["display_name"])) { $outboundEmailConfiguration->setDisplayName($configurations["display_name"]); } if (!empty($configurations["replyto_email"])) { $outboundEmailConfiguration->setReplyTo($configurations["replyto_email"], $configurations["replyto_name"]); } if (!is_bool($configurations["personal"])) { $configurations["personal"] = $configurations["personal"] ? true : false; } $outboundEmailConfiguration->setPersonal($configurations["personal"]); if (is_null($locale)) { $locale = $GLOBALS["locale"]; } $outboundEmailConfiguration->setLocale($locale); if (is_null($charset)) { $charset = $locale->getPrecedentPreference("default_email_charset"); } $outboundEmailConfiguration->setCharset($charset); return $outboundEmailConfiguration; }