%FIELDNAME% is empty"; $emailnotsame_message = "Emails does not match."; $fieldnotchecked_message = "Field %FIELDNAME% must be checked"; $reply_enabled = 0; $reply_url = ''; $reply_images_path = ''; $reply_message = <<$v) { $vars[$k] = trim($v); if (strpos(strtolower(urldecode($vars[$k])),'mime-version') !== false) { die("Why ?? :(");} if (strpos(strtolower(urldecode($vars[$k])),'content-type:') !== false) { die("Why ?? :(");} } return $vars; } function check_fields($vars) //required fields starts with _re { global $error_url,$send_from_field,$emailnotvalid_message,$fieldnotfound_message,$fieldnotchecked_message,$re_fields,$field_labels,$emailnotsame_message; $issues = array(); if (!validate_email($vars[$send_from_field])) $issues[] = $emailnotvalid_message; if (isset($vars[$send_from_field.'_confirm'])) { if ($vars[$send_from_field] != $vars[$send_from_field.'_confirm']) $issues[] = $emailnotsame_message; } foreach ($re_fields as $k=>$v) { $vx = str_replace(' ','_',$v); $label = $v; if (isset($field_labels[$v])) $label = $field_labels[$v]; if (!isset($vars[$vx])) $issues[] = str_replace("%FIELDNAME%",ucfirst($label),$fieldnotchecked_message); else if (!strlen($vars[$vx])) $issues[] = str_replace("%FIELDNAME%",ucfirst($label),$fieldnotfound_message); } if ($issues) { $issues = '
'.join('
', $issues); $fp = fopen($error_url, "r"); $contents = fread($fp, filesize($error_url)); fclose($fp); $contents = str_replace("%ERRORS%",$issues , $contents); print $contents; } return $issues; } function redirect($vars) { global $submit_url; if (strpos(strtolower($submit_url),'http://') !== false) { header("Location: $submit_url"); header("Status: 303"); } else { $fp = fopen($submit_url, "r"); $contents = fread($fp, filesize($submit_url)); fclose($fp); foreach ($vars as $rs=>$v) $contents = str_replace('%'.$rs.'%',$v,$contents); print $contents; } exit(); } function auto_reply($vars) { global $reply_from,$reply_subject,$reply_message,$send_from_field,$reply_url,$reply_images_path,$use_linefeed,$mail_type,$return_path,$page_encoding; $mail = new htmlMimeMail(); $r_message = $reply_message; $r_subject = $reply_subject; if ($page_encoding !== '') { $mail->setTextCharset($page_encoding); $mail->setHtmlCharset($page_encoding); $mail->setHeadCharset($page_encoding); if ($page_encoding == 'UTF-8') { $r_message =utf8_encode($r_message); $r_subject =utf8_encode($r_subject); } } foreach ($vars as $key => $value) {$r_message = str_replace('%'.$key.'%',$value,$r_message);} foreach ($vars as $key => $value) {$r_subject = str_replace('%'.$key.'%',$value,$r_subject);} if ($reply_url != '') { $html = $mail->getFile($reply_url); $mail->setHtml($html, $r_message,$reply_images_path); } else $mail->setText($r_message); $mail->setSubject($r_subject); $mail->setFrom($reply_from); if ($return_path != '') $mail->setReturnPath($return_path); if ($use_linefeed) $mail->setCrlf("\r\n"); $result = $mail->send(array($vars[$send_from_field]),$mail_type); return $result; } function _build_fields($vars) { global $use_linefeed; $pa_fields = ""; foreach ($vars as $rs=>$v) { if (strlen($rs) > 2) $suff = strtolower(substr($rs,strlen($rs)-2)); else $suff = ''; if ((strpos($suff,'_x') === false) && (strpos($suff,'_y') === false) && (strpos($suff,'.x') === false) && (strpos($suff,'.y') === false)) { if ($use_linefeed) $pa_fields .= $rs."= $v\r\n"; else $pa_fields .= $rs."= $v\n"; } } return $pa_fields; } function GetFromString($src,$start,$stop) { if ($start == '') $res = $src; else if (strpos($src,$start) === false) { $res = ''; return $res; } else $res = substr($src,strpos($src,$start) + strlen($start)); if (($stop != '') && (strpos($res,$stop) !== false)) $res = substr($res,0,strpos($res,$stop)); return $res; } function send_mail2($vars) { global $sendto_array, $subject,$_SERVER,$HTTP_POST_FILES,$send_from_field,$use_linefeed,$reply_from,$mail_type, $sender_in_from,$return_path,$page_encoding; $files = array(); $mail = new htmlMimeMail(); if ($page_encoding !== '') { $mail->setTextCharset($page_encoding); $mail->setHtmlCharset($page_encoding); $mail->setHeadCharset($page_encoding); } if (count($HTTP_POST_FILES)){ $files = array_keys($HTTP_POST_FILES); } $date_time = date('d-m-Y'); $fields = _build_fields($vars); $fields = str_replace("\'","'",$fields); $fields = str_replace('\"','"',$fields); // if (strpos(strtolower($fields),'creatingdate') == false) $fields = $fields.'CreatingDate= '.$date_time; if ($use_linefeed) $fields = $fields."\r\n"; else $fields = $fields."\n"; $fields = $fields.'IP= '.$_SERVER['REMOTE_ADDR']; if (count($files)) { foreach ($files as $file) { $file_name = $HTTP_POST_FILES[$file]['name']; $file_type = $HTTP_POST_FILES[$file]['type']; $file_tmp_name = $HTTP_POST_FILES[$file]['tmp_name']; $file_cnt = ""; $f=@fopen($file_tmp_name,"rb"); if (!$f) continue; while($f && !feof($f)) $file_cnt .= fread($f, 4096); fclose($f); if (!strlen($file_type)) $file_type="application/octet-stream"; if ($file_type == 'application/x-msdownload') $file_type = "application/octet-stream"; $mail->addAttachment($file_cnt, $file_name, $file_type); } } if ($use_linefeed) $mail->setCrlf("\r\n"); $r_subject = $subject; foreach ($vars as $key => $value) $r_subject = str_replace('%'.$key.'%',$value,$r_subject); if ($page_encoding == 'UTF-8') $r_subject = utf8_encode($r_subject); if ($sender_in_from) { if (isset($vars['Name'])) $mail->setFrom('"'.$vars['Name'].'" <'.$vars[$send_from_field].'>'); else $mail->setFrom($vars[$send_from_field]); } else if (strpos($reply_from,'<') === false) {$mail->setFrom('"'.$r_subject.'_request" <'.$reply_from.'>');} else $mail->setFrom($reply_from); $mail->setText($fields); $mail->setSubject($r_subject); foreach ($sendto_array as $value) {if (strpos($value,'<') === false) $value = GetFromString($value,'<','>');} if ($return_path != '') $mail->setReturnPath($return_path); $result = $mail->send($sendto_array,$mail_type); return $result; } function validate_email($email) { if (!strlen($email)) return false; if (!preg_match('/^[0-9a-zA-Z\.\-\_]+\@[0-9a-zA-Z\.\-]+$/', $email)) return false; if ( preg_match('/^[^0-9a-zA-Z]|[^0-9a-zA-Z]$/', $email)) return false; if (!preg_match('/([0-9a-zA-Z_]{1})\@./',$email) ) return false; if (!preg_match('/.\@([0-9a-zA-Z_]{1})/',$email) ) return false; if ( preg_match('/.\.\-.|.\-\..|.\.\..|.\-\-./',$email) ) return false; if ( preg_match('/.\.\_.|.\-\_.|.\_\..|.\_\-.|.\_\_./',$email) ) return false; if (!preg_match('/\.([a-zA-Z]{2,5})$/',$email) ) return false; return true; } processform(); ?>