tags:

views:

37

answers:

1

I have an html form the links to a PHP email. The form works well, but I am having trouble with the Cc and Bcc not coming through.

Here is the entire code. Please review and help me understand what I am getting wrong on the Cc and Bcc parts in the headers.

Thanks:

<?php
    $emailFromName = $_POST['name'];
    $emailFrom = $_POST['email'];
    $emailFromPhone = $_POST['phone'];
    $email9_11 = $_POST['9-10'];
    $email10_11 = $_POST['10-11'];
    $email11_12 = $_POST['11-12'];
    $email12_1 = $_POST['12-1'];

    if (empty($emailFromName)) {
        echo 'Please enter your name.';
    } elseif (!preg_match('/^([A-Z0-9\.\-_]+)@([A-Z0-9\.\-_]+)?([\.]{1})([A-Z]{2,6})$/i', $emailFrom) || empty($emailFrom)) {
        echo 'The email address entered is invalid.';   
    } else {

        $emailTo = "[email protected]" ;
        $subject = "Family History Conference Registration";


       if (!empty($emailFrom)) {
    $headers = 'From: "' . $emailFromName . '" <' . $emailFrom . '>';
        } else {
            $headers = 'From: Family History Conference <[email protected]>' . "\r\n";
            $headers .= 'Cc: $emailFrom' . "\r\n";
            $headers .= 'Bcc: [email protected]' . "\r\n";
        }

        $body = "From: ".$emailFromName."\n";
        $body .= "Email: ".$emailFrom."\n";
        $body .= "Phone: ".$emailFromPhone."\n\n";
        $body .= "I would like to attend the following classes.\n";
        $body .= "9:10 to 10:00: ".$email9_11."\n";
        $body .= "10:10 to 11:00: ".$email10_11."\n";
        $body .= "11:10 to 12:00: ".$email11_12."\n";
        $body .= "12:10 to 1:00: ".$email12_1."\n";

        /* Send Email */
        if (mail($emailTo, $subject, $body, $headers)) {
            echo "<h2>Thank you for Registering</h2>
            <h3>You have registered for the following classes</h3>
            <p>9:10 to 10:00am: \"$email9_11\" <br />
             10:10 to 11:00am: \"$email10_11\"<br />
             11:10 to 12:00:  \"$email11_12\"<br />
             12:10 to 1:00: \"$email12_1\"</p>
        <p>We look forward to seeing you October 31, 2010</p>";


        } else {
            echo 'There was an internal error while sending your email.<br>';
            echo 'Please try again later.';    
        }
    }
?>
+1  A: 

You're using single quotes

$headers .= 'Cc: $emailFrom' . "\r\n";

PHP won't interpret variables inside single quotes, you must use double quotes

$headers .= "Cc: $emailFrom\r\n";
Galen
I added the double quotes, but still do not receive emails. Did I miss something else?
fmz