All pastes #919880 Raw Edit

Unnamed

public text v1 · immutable
#919880 ·published 2008-02-27 01:37 UTC
rendered paste body
<?php
/*
  ezgemail.php

  D A O Software Solution
*/

$send_to = 'jenifer@supportmyoffice.com';
$send_from_field ="Email";
$sender_in_from = false;
$hidden_menus = false;
$return_path = '';
$page_encoding = 'iso-8859-1';
$re_fields = array();
$field_labels = array("Name"=>"Name","Address"=>"Address","Place"=>"Place","Phone"=>"Phone","Email"=>"Email","Country"=>"Country","Notes"=>"Notes");
if (isset($_SERVER['SERVER_SOFTWARE']))$use_linefeed = strpos($_SERVER['SERVER_SOFTWARE'] ,'Microsoft') !== false;
else $use_linefeed = false;
$mail_type = "mail";
$subject = "";
$submit_url = "contact_us.html";
$error_url = "documents/29.html";
$emailnotvalid_message = "Please specify valid Email address";
$fieldnotfound_message = "Field <b>%FIELDNAME%</b> 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 = <<<MSG
Thank you for submitting the form.

MSG;
$sendto_array = split("[;]",$send_to);
$reply_from = $sendto_array[0];
$reply_subject = "";



include('htmlMimeMail.php');

function processform()
{
  global $reply_enabled,$send_to;

  if ($send_to == 'your@email.com') echo 'please define request recipient e-mail on request page settings panel!';
  else
  {
      $formfields      = get_fields();
      if (check_fields($formfields)) return;
      if (send_mail2($formfields))
      {
        if ($reply_enabled) auto_reply($formfields);
        redirect($formfields);
      }
      else echo 'sending mail failed';
  }
}

function get_fields()
{
  $vars = ($_SERVER['REQUEST_METHOD'] == 'POST') ? $_POST : $_GET;
  foreach ($vars as $k=>$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 = '<br>'.join('<br>', $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();
  if ($page_encoding !== '')
  {
    $mail->setTextCharset($page_encoding);
    $mail->setHtmlCharset($page_encoding);
    $mail->setHeadCharset($page_encoding);
  }

  foreach ($vars as $key => $value) {   $reply_message = str_replace('%'.$key.'%',$value,$reply_message);  }
  foreach ($vars as $key => $value) {   $reply_subject = str_replace('%'.$key.'%',$value,$reply_subject);  }

  if ($reply_url != '')
  {
        $html = $mail->getFile($reply_url);
        $mail->setHtml($html, $reply_message,$reply_images_path);
  }
  else $mail->setText($reply_message);
  $mail->setSubject($reply_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 (($rs != 'REQUEST_SEND_x') && ($rs != 'REQUEST_SEND_y'))
     {
        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);
  $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");

    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('"'.$subject.'_request" <'.$reply_from.'>');  }
    else $mail->setFrom($reply_from);

    $mail->setText($fields);
    $mail->setSubject($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)
{

  return true;
}

processform();
?>