Thread: Sending Mail
View Single Post
Old 08-29-2009, 05:47 AM   #2 (permalink)
adamdecaf
The Addict
 
Join Date: May 2009
Posts: 287
Thanks: 5
adamdecaf is on a distinguished road
Default

Please post your code on the post, it helps others.

PHP Code:
<?php

class ContactPop {
    
/****** config *********/

    // the title of the emails that the form sends
    
var $emailTitle 'MYSITE Contact Form';

    var 
$thankYouMessage "Thank you for contacting us, we'll get back to you shortly.";

    
/******* end config ********/


    
var $error '';

    function 
getFormHtml($ajax 0) {

        
$postedName $_POST['name'];
        
$postedEmail $_POST['email'];
        
$postedMessage $_POST['message'];

        
$sendto $_POST['subject'];
        if (
$sendto == 'option1')
        { 
$recipient 'option1@mail.com'; }
        elseif (
$sendto == 'option2')
        { 
$recipient 'option2@mail.com'; }
        elseif (
$sendto == 'option3')
        { 
$recipient 'option3@mail.com'; }
        elseif (
$sendto == 'option4')
        { 
$recipient 'option4@mail.com'; }
        elseif (
$sendto == 'optoin5')
        { 
$recipient 'option5@mail.com'; }


        
$formHtml '';

        
// send congratulations message
        
if ( isset($_POST['httpReferer']) && !$this->error ) {
            
$out '<p id="contact-pop-error" class="formItem">' $this->thankYouMessage '</p>';

            if ( 
$ajax $out .= '<a href="#" class="close-overlay">Close</a>';

            return 
$out;
        }

        if ( 
$this->error $formHtml .= '<p id="contact-pop-error" class="formItem">' $this->error '</p>';


        
$httprefi $_SERVER["HTTP_REFERER"];

        
$cancelLink $ajax '<a href="#" class="close-overlay">Cancel</a>' '';

        
$formHtml .= <<<EOT
        
        <input type="hidden" name="httpReferer" value="
$httprefi" />
        
        <div class="formItem">
            <label>Pick a relevant subject:</label>
            <select class="inputText2" name="subject">
            <option class="dropdown" value="option1">option1</option>
            <option class="dropdown" value="option2">option2</option>
            <option class="dropdown" value="option3">option3</option>
            <option class="dropdown" value="option4">option4</option>
            <option class="dropdown" value="option5">option5</option>
            </select>
        </div>
        
        <div class="formItem">
            <label>Name:</label>
            <input type="text" name="name" class="inputText" value="
$postedName" size="35" />
        </div>
        
        <div class="formItem">
            <label>Company:</label>
            <input type="text" name="company" class="inputText" value="
$postedCompany" size="35" />
        </div>
        
        <div class="formItem">
            <label>Email:</label>
            <input type="text" name="email" class="inputText" value="
$postedEmail" size="35" />
        </div>
        
        <div class="formItem">
            <label>Website:</label>
            <input type="text" name="website" class="inputText" value="
$postedWebsite" size="35" />
        </div>
        
        <div class="formItem">
            <label>Message:</label>
            <textarea name="message" class="textarea" rows="7" cols="38">
$postedMessage</textarea>
        </div>
        
        <div class="formItem">
            <input type="submit" value="Send Message" class="submit" />
        </div>
        
EOT;

        return 
$formHtml;
    }

    function 
checkEmail($emailAddress) {
        if (
preg_match('/[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)*\@[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)+/i'$emailAddress)){
            
$emailArray explode("@",$emailAddress);
            if (
checkdnsrr($emailArray[1])){
                return 
TRUE;
            }
        }
        return 
false;
    }

    function 
processForm() {

        
// check data
        
if ( !$_POST['name'] ) $this->error .= 'Please enter your name<br />';
        if ( !
$this->checkEmail$_POST['email'] ) ) $this->error .= 'Please enter a valid email address<br />'
        if ( !
$_POST['message'] ) $this->error .= 'Please enter a message<br />';

        if ( !
$this->error $this->sendFormEmail();
    }

    function 
sendFormEmail() {
        
$message "Name: " stripslashes($_POST['name']) . 
            
"\nEmail: " $_POST['email'] . 
            
"\n\nMessage: " stripslashes($_POST['message']);

        if ( 
$_POST['ajaxForm'] ) $message .= "\n\nFrom a Contact-Pop Form on page: " $_SERVER["HTTP_REFERER"];
        else 
$message .= "\n\nReferrer: " $_POST['httpReferer'];

        
$message .= "\n\nBrowser Info: " $_SERVER["HTTP_USER_AGENT"] .
            
"\nIP: " $_SERVER["REMOTE_ADDR"] .
            
"\n\nDate: " date("Y-m-d h:i:s");

        
mail($this->sendto$this->emailTitle$message'From: ' $_POST['name'] . ' <' $_POST['email'] . '>');
    }
}

$contactPop = new ContactPop();

if (isset(
$_POST['httpReferer'])) $contactPop->processForm();

// echo the ajax version of the form
if ( isset($_REQUEST['ajaxForm']) && $_REQUEST['ajaxForm']) {
    echo 
$contactPop->getFormHtml(1);
}
// or echo the full page version of the form
else {

?>

    <?=$contactPop->getFormHtml(); ?>

<?php 
}
?>
The If/Then/Else If statement contains no "else" block, so if something fails all the tests it is not modified.
__________________
My Site
adamdecaf is offline  
Reply With Quote