// Email / Contact Form // Simple XHTML validating email form, that sends different subjects and messages. // people in a company. // // Version 1.0 // September 9, 2005 // ryan@vertexworks.com // // DO NOT ALTER THE FOLLOWING TWO LINES $subject_array = array(); $recipient_array = array(); /////////////////////////////////// // <----- BEGIN CONFIG -----> /////////////////////////////////// // Edit only what's between the quotation marks in the lines below. // These will be the subjects that your users can choose from popup // lists. You can have as many as you want. Each one must be set up like so: // $subject_array[] = "What You Want This Choice To Be"; // Make sure to remove empty ones that you aren't using. Just delete the entire line. // Generic email to use for all parts. You can edit // the individual instances for more control. // Defaults to the built-in email notification account which is set in the System Configuration. // Can be set by using as follows: // [[ContactForm? &sendTo=`ryan@vertexworks.com`]] $email = (isset($sendTo))? $sendTo : '[(emailsender)]'; // enter "static" in order to use the static subject line $subject_type = "static"; $static_subject = "[Web Inquiry] ".$modx->config['site_url']; // Otherwise use an array of possible subjects $subject_array[] = "Survey Info"; $subject_array[] = "Company Info"; $subject_array[] = "Other Info"; // Recipient ... add or remove lines as needed // Format (as few or as many as desired): // $recipient_array["Your Text Here"] = 'someone@someplace.com'; $recipient_array["General Inquiries"] = "$email"; $recipient_array["Press or Interview Request"] = "$email"; $recipient_array["Partnering Opportunities"] = "$email"; // enter "static" in order to use the solo recipient $recipient_type = ""; $static_recipient = "$email"; // Instructions $instructions = "Please select the type of message you'd like to send so we can route it properly. All fields are required."; // Success Message $success = "Thanks for contacting [(site_url)]. Someone will get back to you soon. You may submit another message in the form below."; // Class for containing Success Message

$successClass = "message"; // Failure

class $failClass = "error"; // Empy Field failure message $emptyFields = "One of the fields was left blank. Please put something in all fields."; // General failure message $generalFail = "Sorry, there was an error! Please try again later."; // Bad email failure message $failedEmail= (isset($_POST['email']))? $_POST['email']: ''; $emailFail = "The email address you supplied ({}) does not appear to be valid. Please try again."; // Debug mode for testing $debug = false; // <----- END CONFIG -----> /////////////////////////////////// $SendMail = ''; if ($debug && $_POST) { $SendMail .= "POST variables from Document ID [*id*]:\n"; foreach ($_POST as $key => $value) { $SendMail .= "\t$key => $value\n"; } } $from= ''; $from_email= ''; $message= ''; $postSend= isset($_POST['send'])? $_POST['send']: 'false'; if ($postSend == 'true') { $to = ($recipient_type=="static") ? $static_recipient : $_POST['to']; $from = $_POST['name']; $from_email = $_POST['email']; $the_subject = ($subject_type=="static") ? "$static_subject" : $_POST['subject']; $message = $_POST['message']; if ( ($from == '')||($from_email == '')||($message == '') ) { $SendMail .= "

$emptyFields

"; } elseif (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $from_email)) { $subject = $the_subject; $headers = "From: $from <$from_email>\r\n"; // clean out potential tomfoolery... $message = $modx->stripTags($message); $body = "Name: $from\nEmail: $from_email\nMessage:\n\n" . $message; if (mail($to, $subject, $body, $headers)) { $SendMail .= "

$success

"; $SendMail .= ($debug) ? "

$to\n$headers\n$subject\n$body

" : ''; $from=""; $from_email=""; $message=""; } else { $SendMail .= "

$generalFail

"; $send = "false"; } } else { $SendMail .= "

$emailFail

"; $send = "false"; } } else { $SendMail .= "

$instructions

"; } $SendMail .=<<

[(sitename)] Contact Form

EOD; return $SendMail;