Beispiel #1
0
 /**
  *
  **/
 public function sendMail($fromaddress, $toaddress, $subject, $message, $fromname = '', $html = '')
 {
     $use_smtp = false;
     if ($fromname != '') {
         $fromaddress = array($fromaddress => $fromname);
     }
     // Create the message
     try {
         $message = Swift_Message::newInstance()->setSubject($subject)->setFrom($fromaddress)->setTo($toaddress)->setBody($message);
         if ($html != '') {
             $message->addPart($html, 'text/html');
         }
     } catch (Exception $e) {
         return false;
     }
     if (!self::$transport) {
         // create the transport
         if (isset(self::$settings['routine']) && self::$settings['routine'] == "smtp" && isset(self::$settings['smtp_host']) && strlen(self::$settings['smtp_host']) > 5) {
             $port = '25';
             $tp = NULL;
             // check for SSL
             // port 587 is for STARTTLS
             // port 465 is for TLS
             if (isset(self::$settings['smtp_ssl']) && self::$settings['smtp_ssl'] == true) {
                 if (isset(self::$settings['smtp_ssl_port']) && self::$settings['smtp_ssl_port'] != '' && self::$settings['smtp_ssl_port'] != '25' && self::$settings['smtp_ssl_port'] != '587') {
                     $transports = stream_get_transports();
                     if (in_array('tls', $transports)) {
                         $tp = 'tls';
                         $port = isset(self::$settings['smtp_ssl_port']) && self::$settings['smtp_ssl_port'] != '' ? self::$settings['smtp_ssl_port'] : '465';
                     } else {
                         if (in_array('ssl', $transports)) {
                             $tp = 'ssl';
                             $port = isset(self::$settings['smtp_ssl_port']) && self::$settings['smtp_ssl_port'] != '' ? self::$settings['smtp_ssl_port'] : '465';
                         }
                     }
                 }
             }
             self::$transport = Swift_SmtpTransport::newInstance(self::$settings['smtp_host'], $port, $tp);
             if (self::$debug) {
                 $logger = new Swift_Plugins_Loggers_EchoLogger();
                 self::$transport->registerPlugin(new Swift_Plugins_LoggerPlugin($logger));
             }
             $use_smtp = true;
         } else {
             self::$transport = Swift_MailTransport::newInstance();
         }
         if ($use_smtp && isset(self::$settings['smtp_auth']) && isset(self::$settings['smtp_username']) && isset(self::$settings['smtp_password']) && self::$settings['smtp_auth'] == "true" && strlen(self::$settings['smtp_username']) > 1 && strlen(self::$settings['smtp_password']) > 1) {
             // use SMTP authentification
             self::$transport->setUsername(self::$settings['smtp_username']);
             self::$transport->setPassword(self::$settings['smtp_password']);
         }
         // timeout
         if ($use_smtp && isset(self::$settings['smtp_timeout']) && self::$settings['smtp_timeout'] != '') {
             self::$transport->setTimeout(self::$settings['smtp_timeout']);
         }
     }
     if (!self::$mailer) {
         // Create the Mailer using your created Transport
         self::$mailer = Swift_Mailer::newInstance(self::$transport);
     }
     try {
         self::$mailer->send($message);
     } catch (Swift_TransportException $e) {
         CAT_Helper_Mail::setError('Transport exception: ' . $e->getMessage() . ' (Port: ' . $port . ', Transport: ' . $tp . ')');
         return false;
     } catch (Exception $e) {
         CAT_Helper_Mail::setError($e->getMessage());
         return false;
     }
     return true;
 }
Beispiel #2
0
 /**
  *
  **/
 public function sendMail($fromaddress, $toaddress, $subject, $message, $fromname = '')
 {
     // format
     $fromaddress = preg_replace('/[\\r\\n]/', '', $fromaddress);
     $toaddress = preg_replace('/[\\r\\n]/', '', $toaddress);
     $subject = preg_replace('/[\\r\\n]/', '', $subject);
     $message = preg_replace('/\\r\\n?|\\n/', '<br \\>', $message);
     try {
         if ($fromaddress != '') {
             if ($fromname != '') {
                 self::$instance->FromName = $fromname;
             }
             self::$instance->From = $fromaddress;
             self::$instance->AddReplyTo($fromaddress);
         }
         self::$instance->AddAddress($toaddress);
         self::$instance->Subject = $subject;
         self::$instance->Body = $message;
         self::$instance->AltBody = strip_tags($message);
         self::$instance->Send();
         return true;
     } catch (phpmailerException $e) {
         CAT_Helper_Mail::setError(self::$instance->ErrorInfo);
         return false;
     } catch (Exception $e) {
         CAT_Helper_Mail::setError($e->getMessage());
         return false;
     }
     // never reached
     return true;
 }