// SMTP Params
global $gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto, $gTestCaptcha, $gOKMessage;
$gSMTPServer = "";
$gSMTPLogin = "";
$gSMTPPassword = "";
$gEmailto = "sales@ezdupe.com.tw";
$gTestCaptcha = true;
$gOKMessage = "Success! Your Email has been sent. Thanks for visiting our Web Site, we will try to contact you as soon as we can !!";
?>
session_start();
function ShowMessage($msg) {
echo '
';
}
function ShowMessageRef($msg) {
echo '';
}
function SMTPmail($server, $login, $password, $emailto, $subject, $message, $from) {
function get_data($smtp_conn)
{
$data="";
while($str = @fgets($smtp_conn,515))
{
$data .= $str;
if(substr($str,3,1) == " ") { break; }
}
return $data;
}
$headers = "To: $emailto\nFrom: $from\nSubject: $subject\nX-Mailer: The Bat! (v3.99.3) Professional\n";
$smtp_conn = @fsockopen($server, 25, &$errno, &$errstr, 30);
if (!$smtp_conn) {
return "Server $server. Connection failed: $errno";
}
$data = get_data($smtp_conn);
$serverdomainarray = explode('.', $server);
$serverdomainarraycount = count($serverdomainarray);
$serverdomain = $serverdomainarray[$serverdomainarraycount - 2].".".$serverdomainarray[$serverdomainarraycount - 1];
fputs($smtp_conn,"HELO $serverdomain\r\n");
$data = get_data($smtp_conn);
if($data != 250) {fclose($smtp_conn); return 'SMTP server HELO command error.';}
fputs($smtp_conn,"AUTH LOGIN\r\n");
$data = get_data($smtp_conn);
if($data != 334) {fclose($smtp_conn); return 'SMTP server AUTH command error.';}
fputs($smtp_conn,base64_encode($login)."\r\n");
$data = get_data($smtp_conn);
if($data != 334) {fclose($smtp_conn); return 'SMTP server login failed.';}
fputs($smtp_conn,base64_encode($password)."\r\n");
$data = get_data($smtp_conn);
if($data != 235) {fclose($smtp_conn); return 'SMTP server incorrect password.';}
fputs($smtp_conn,"MAIL FROM: $login@$serverdomain\r\n");
$data = get_data($smtp_conn);
if($data != 250) {fclose($smtp_conn); return 'SMTP server MAILFROM command error.';}
fputs($smtp_conn,"RCPT TO: $emailto\r\n");
$data = get_data($smtp_conn);
if($data != 250) {fclose($smtp_conn); return 'SMTP server RCPT TO command error.';}
fputs($smtp_conn,"DATA\r\n");
$code = substr(get_data($smtp_conn),0,3);
if($code != 354) {fclose($smtp_conn); return 'SMTP server DATA sending error.';}
fputs($smtp_conn,$headers."\r\n".$message."\r\n.\r\n");
$code = substr(get_data($smtp_conn),0,3);
if($code != 250) {fclose($smtp_conn); return 'SMTP server HEADER sending error.';}
fputs($smtp_conn,"\n.\nQUIT\n");
$data = get_data($smtp_conn);
fclose($smtp_conn);
return 'OK';
}
// PHPMailer
function CallPHPMailer($sendmethod) {
global $gTestCaptcha;
if (($gTestCaptcha == true)&&(empty($_POST['captcha']) || ($_POST['captcha'] != $_SESSION['random_number']))) {
ShowMessage('ERROR!
Verification code is incorrect.');
exit();
}
if (empty($_POST['cname'])) {
ShowMessage('ERROR!
Enter correct name.');
exit();
}
if (empty($_POST['email']) || !preg_match("/^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$/", $_POST['email'])) {
ShowMessage('ERROR!
Enter correct email.');
exit();
}
$cname = substr($_POST['cname'], 0, 50);
$cname = trim($cname);
$cname = htmlspecialchars(stripslashes($cname));
$email = substr($_POST['email'], 0, 50);
$email = trim($email);
$email = htmlspecialchars(stripslashes($email));
$subject = substr($_POST['subject'], 0, 50);
$subject = trim($subject);
$subject = htmlspecialchars(stripslashes($subject));
$message = substr($_POST['message'], 0, 4096);
$message = trim($message);
$message = htmlspecialchars(stripslashes($message));
global $gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto, $gOKMessage;
if ($sendmethod == 'sendmail') {
if (mail($gEmailto, $subject, $message, 'From: "'.$cname.'" <'.$email.'>')) {
ShowMessageRef($gOKMessage);
} else {
ShowMessageRef('Error during message sending.');
}
} else if ($sendmethod == 'SMTP') {
$result = SMTPmail($gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto, $subject, $message, 'From: "'.$cname.'" <'.$email.'>');
if ($result == 'OK') {
ShowMessageRef($gOKMessage);
} else {
ShowMessageRef($result);
}
}
}
// AjaxMailer
function CallAJAXMailer($sendmethod) {
function MakeExit($vsStatus, $vsErrors) {
header('Content-Type: text/xml');
echo '';
echo '';
echo ''.$vsStatus.'';
if ($vsErrors <> '') {
echo ''.$vsErrors.'';
}
echo '';
exit();
}
function cleanPosUrl ($str) {
$nStr = $str;
$nStr = str_replace("**am**","&",$nStr);
$nStr = str_replace("**pl**","+",$nStr);
$nStr = str_replace("**eq**","=",$nStr);
return stripslashes($nStr);
}
$cname = substr(cleanPosUrl($_POST['posName']), 0, 50);
$cname = trim($cname);
$cname = htmlspecialchars(stripslashes($cname));
$email = substr(cleanPosUrl($_POST['posEmail']), 0, 50);
$email = trim($email);
$email = htmlspecialchars(stripslashes($email));
$subject = substr(cleanPosUrl($_POST['posSubject']), 0, 50);
$subject = trim($subject);
$subject = htmlspecialchars(stripslashes($subject));
$message = substr(cleanPosUrl($_POST['posMessage']), 0, 4096);
$message = trim($message);
//$message = htmlspecialchars(stripslashes($message));
$message = stripslashes($message);
$captcha = substr(cleanPosUrl($_POST['posCaptcha']), 0, 50);
$captcha = trim($captcha);
$captcha = htmlspecialchars(stripslashes($captcha));
$posErrors = '';
global $gTestCaptcha;
if (($gTestCaptcha == true)&&(empty($captcha) || ($captcha != $_SESSION['random_number']))) {
$posErrors .= 'Verification code is incorrect!';
$posErrors = '';
MakeExit('CAPTCHAERROR', $posErrors);
}
if (empty($cname)) {
$posErrors .= 'Enter correct name';
}
if (empty($email) || !preg_match("/^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$/", $email)) {
$posErrors .= 'Enter correct email';
}
if ($posErrors <> '')
$posErrors = '';
if ($posErrors <> '')
MakeExit('ERRORS', $posErrors);
global $gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto;
if ($sendmethod == 'sendmail') {
$Type = "Content-Transfer-Encoding: 8bit\n\r"
. "Content-Type: text/html; charset=UTF-8\n\r";
$From = "From:"."=?UTF-8?B?".base64_encode($cname)."?=<".$email.">";
$Header = $Type.$From;
if (mail($gEmailto,
"=?UTF-8?B?".base64_encode($subject)."?=",
nl2br($message),
$Header)) {
MakeExit('OK', '');
} else {
MakeExit('NOTOK', '');
}
} else if ($sendmethod == 'SMTP') {
$result = SMTPmail($gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto, $subject, $message, 'From: "'.$cname.'" <'.$email.'>');
if ($result == 'OK') {
MakeExit('OK', '');
} else {
MakeExit('ERRORS', ''.$result.']]>');
}
}
}
// Main
if (isset($_GET['action']))
if ($_GET['action'] == 'getCaptcha') {
header('Pragma: no-cache');
header('Expires: -1');
header('Cache-control: no-cache');
$_SESSION['random_number']=rand(1000, 9999);
$number=$_SESSION['random_number'];
header ("Content-type: image/png");
$im = @imagecreatetruecolor(60, 19)
or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 199, 224, 212);
$text_color1 = imagecolorallocate($im, 0, 0, 0);
$background = imagecolorallocate($im, 121, 179, 11);
$e=imagefilledrectangle ( $im, 0, 0,100, 50, $background);
imagestring($im, 8, 2, 2, $number, $text_color);
imagestring($im, 8, 4, 4, $number, $text_color1);
imagegif($im);
imagedestroy($im);
exit();
}
if (isset($_GET['tech']) && isset($_GET['method'])) {
if ($_GET['tech'] == 'php') {
CallPHPMailer($_GET['method']);
} else if ($_GET['tech'] == 'ajax') {
CallAJAXMailer($_GET['method']);
}
}
?>