'curl', 'server' => 'smtps://smtp.gmail.com:465 --ssl', 'options' => ' -k --anyauth', 'from' => 'user@example.com', 'userpass' => '', 'bcc' => '', )); function MailSMTP( $to, $subject, $message, $headers='') { global $WorkDir, $SMTPMail; $x = (is_callable('SMTPMailOpt')) ? SMTPMailOpt() : array(); SDVA($x, $SMTPMail); extract($x); $to = preg_replace('/\\s+/', ' ', $to); $to = preg_replace('/["!$]+/', '', $to); $rcpt = "$to,$bcc"; if(preg_match('/^Cc: *(\\S.*)$/mi', $headers, $m)) $rcpt .= ",$m[1]"; if(preg_match('/^Bcc: *(\\S.*)$/mi', $headers, $m)) { $rcpt .= ",$m[1]"; $headers = preg_replace("/^Bcc: .*$/mi", '', $headers); $headers = str_replace("\r\n\r\n", "\r\n", $headers); } $mailto = array(); $tos = preg_split('/, */', $rcpt); foreach($tos as $e) if($e) $mailto[$e] = " --mail-rcpt " . escapeshellarg($e); $mailto = implode(' ', $mailto); $subject = preg_replace('/\\s+/', ' ', $subject); if(preg_match('/<(\\S+@\\S+)>/', $from, $m)) $mailfrom = $m[1]; else $mailfrom = $from; $message = str_replace("\r", "", $message); $message = str_replace("\n", "\r\n", $message); $message = wordwrap($message, 70, "\r\n"); $headers = trim($headers); if($headers) $headers .= "\r\n"; if(!preg_match('/^From:/m', $headers)) $headers .= "From: $from\r\n"; $headers .= "To: $to\r\n"; $headers .= "Subject: $subject\r\n"; $envelope = trim($headers) . "\r\n\r\n" . ltrim($message, "\r\n"); $temp = tempnam($WorkDir,"mail"); if ($fp = fopen($temp,"w")) { fputs($fp,$envelope); fclose($fp); } else { return false; } if($userpass) $userpass = '-u '. escapeshellarg($userpass); $command = "$curl $server -vv $userpass --mail-from \"$mailfrom\" $mailto -T $temp 2>&1 "; ob_start(); passthru($command); $ret = ob_get_clean(); @unlink($temp); if(preg_match('/We are completely uploaded and fine/i', $ret)) return true; else return false; }