Example #1
0
 function send($conn = null, $addrs = null, $mess = null, $from = null, $debug = null)
 {
     if (!FUNC4::is_debug($debug)) {
         $debug = debug_backtrace();
     }
     global $_RESULT;
     $_RESULT = $err = array();
     if (!is_resource($conn)) {
         $err[] = 'invalid resource connection';
     }
     if (!is_array($addrs)) {
         $err[] = 'invalid to address type';
     } else {
         $aver = true;
         if (count($addrs) > 0) {
             foreach ($addrs as $addr) {
                 if (!FUNC4::is_mail($addr)) {
                     $aver = false;
                     break;
                 }
             }
         } else {
             $aver = false;
         }
         if (!$aver) {
             $err[] = 'invalid to address value';
         }
     }
     if (!is_string($mess)) {
         $err[] = 'invalid message value';
     }
     if ($from == null) {
         $from = @ini_get('sendmail_from');
         if ($from == '' || !FUNC4::is_mail($from)) {
             $from = isset($_SERVER['SERVER_ADMIN']) && FUNC4::is_mail($_SERVER['SERVER_ADMIN']) ? $_SERVER['SERVER_ADMIN'] : 'postmaster@localhost';
         }
     } else {
         if (!is_string($from)) {
             $err[] = 'invalid from address type';
         } else {
             if (!($from != '' && FUNC4::is_mail($from))) {
                 $err[] = 'invalid from address value';
             }
         }
     }
     if (count($err) > 0) {
         FUNC4::trace($debug, implode(', ', $err));
     } else {
         $ret = false;
         if (SMTP4::from($conn, $from, $debug)) {
             $continue = true;
             foreach ($addrs as $dest) {
                 if (!SMTP4::to($conn, $dest, $debug)) {
                     $continue = false;
                     break;
                 }
             }
             if ($continue) {
                 if (SMTP4::data($conn, $mess, $debug)) {
                     $ret = SMTP4::rset($conn, $debug);
                 }
             }
         }
         return $ret;
     }
 }