JDest Posted February 19, 2013 Share Posted February 19, 2013 I have some code for a mail form and it works fine except the email doesn't actually get sent. It progresses to the success page but the email isn't delivered. I can't figure it out! Anybody have any ideas? <?php /* Template for form to email */ session_start(); if((isset($_POST["form-complete"])) && ($_POST["form-complete"] == "form-complete") && $_POST['secure'] == $_SESSION['security_number']) { //create mail variables $to = "fake@forforum.com"; $toAlso = "email@email.com"; $fromName = $_POST['full_name']; $fromEmail = $_POST['email_address']; $subject = $_POST["subject"]; $emailHeaders = "MIME-Version: 1.0\r\n"; $emailHeaders .= "Content-type: text/html; charset-ISO-8859-1\r\n"; $emailHeaders .= "From: " . $fromName . " <" . $fromEmail . ">\r\n"; $message = "<table border=\"0\" cellpadding=\"2\" cellspacing=\"2\" style=\"font-size:11px;\">"; $redirect_success = get_permalink(699); $redirect_error = get_permalink(715); define('REDIRECT_SUCCESS', $redirect_success); define('REDIRECT_ERROR', $redirect_error); //$redirectSuccess = "/?page_id=650"; //$redirectError = "/?page_id=648"; $counter = 2; $tripCounter = 0; $attachments; $uid = md5(uniqid(time())); $path = "test/upload/"; //seperates form name into usable fields //removes "record" from begining of input name //seperates words by capitol letter and number function mail_attachment($mailto, $from_mail, $from_name, $subject, $message2, $mailattachments, $uid2) { $name = basename($file); $header = 'To: '.$mailto.' <'.$mailto.'>' . "\r\n"; //$header = 'To: '.get('contact_list_email_address_name', ($_POST['emailed_to']), 1, 1, 194).' <'.$mailto.'>' . "\r\n"; $header .= "From: ".$from_name." <".$from_mail.">\r\n"; //if(getFieldOrder('cc_email_address',1, 194)) { //for($i=0;$i<sizeof(getFieldOrder('cc_email_address',1, 194));$i++) { //$header .= 'Cc: ' . get_field_duplicate('cc_email_address', 1, ($i+1), 1, 194) . "\r\n"; } } $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; boundary=\"".$uid2."\"\r\n\r\n"; $header .= "This is a multi-part message in MIME format.\r\n"; $header .= "--".$uid2."\r\n"; $header .= "Content-type:text/html; charset=iso-8859-1\r\n"; $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; $header .= $message2."\r\n\r\n"; $header .= $mailattachments; $header .= "--".$uid2."--"; if (mail($mailto, $subject, "", $header)) { unset($_POST); unset($_FILES); //header("Location: " . REDIRECT_SUCCESS); // redirect on success echo $message2; } else { unset($_POST); unset($_FILES); //header("Location: " . REDIRECT_ERROR); // redirect on success } } function cleanLabel($tempLabel) { $search = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","1","2","3","4","5","6","7","8","9","0"); // if using Caps and numbers as seperators $seperator = "_"; // if using underscore as word seperator $tempLabel = str_replace("record", "", $tempLabel); //removes record from begining of input names $serchLength = count($search); $tempLabel[0] = str_replace($tempLabel[0], strtoupper($tempLabel[0]), $tempLabel[0]); for($i=0;$i<$serchLength;$i++) { $tempLabel = str_replace(("_" . strtolower($search[$i])), (" " . strtoupper($search[$i])), $tempLabel); // removes search variable and replaces with a space } return $tempLabel; } function cleanValue($tempValue) { // strips HTML from values and replaces new line escape sequence with <br /> $tempValue = strip_tags($tempValue); $tempValue = str_replace("\n", "<br />", $tempValue); if($tempValue == "(choose one)") $tempValue = ""; return $tempValue; } //break post arrays into key / value pairs foreach($_POST as $key => $value) { if($counter % 1 == 0) { $tagBefore = "<tr>"; $tagAfter = ""; } else { $tagBefore = ""; $tagAfter = "</tr>"; } if(!is_array($value)) if((substr($key, 0, 5) == "phone") || (substr($key, 0, 3) == "fax")) { if(!$tripCounter) { if(substr($key, 0, 5) == "phone") $message .= "<tr><td style=\"text-align:right\"><strong>Phone Number:</strong></td><td>" . cleanValue($value); if(substr($key, 0, 3) == "fax") $message .= "<tr><td style=\"text-align:right\"><strong>Fax Number:</strong></td><td>" . cleanValue($value); $tripCounter++; } else if($tripCounter==1) { $message .= "-" . cleanValue($value); $tripCounter++; } else if($tripCounter==2) { $message .= "-" . cleanValue($value) . "</td></tr>"; $tripCounter=0; } } else if(substr($key, 0, 17) == "heading_for_email") $message .= "<tr><td> </td></tr><tr><td style=\"text-align:right\"></td><td style=\"text-align:left\"><strong>" . cleanValue($value) . "</strong></td></tr>"; else if($key != "submit" && $key != "form-complete" && $key != "secure" && $key != "emailed_to" && $key != "submit_x" && $key != "submit_y") $message .= $tagBefore . "<td style=\"text-align:right\"><strong>" . cleanLabel($key) . ":</strong></td><td style=\"text-align:left\">" . cleanValue($value) . "</td>" . $tagAfter; // if values is array - break into key2 / value2 pairs if(is_array($value)) { $message .= $tagBefore . "<td style=\"text-align:right; vertical-align:top\"><strong>" . cleanLabel($key) . ":</strong></td><td style=\"text-align:left\">"; foreach($value as $key2 => $value2) { echo $key2; $message .= cleanValue($value2) . "<br />"; } $message .= "</td>" . $tagAfter; } $counter++; } $message .= "</table>"; //echo $message; if(mail($to, $subject, $message, $emailHeaders)) // send mail { mail($toAlso, $subject, $message, $emailHeaders); header("Location: " . $redirect_success); // redirect on success } else { header("Location: " . $redirect_error); // redirect on error } } else if((isset($_POST["form-complete"])) && ($_POST["form-complete"] == "form-complete") && $_POST['secure'] != $_SESSION['security_number']) { //header("Location: " . $_SERVER["HTTP_REFERER"]); // redirect on success $userMessage = '<div id="user_message_area" class="user_message_box white_round"><span class="user_message">There was an error sending your message.<br />Please <a href="#" onclick="hide_box(\'user_message_area\');">try again.</a></span></div>'; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/274705-mail-form/ Share on other sites More sharing options...
AyKay47 Posted February 19, 2013 Share Posted February 19, 2013 (edited) I assume you have a mail server set up and the correct SMTP/sendmail settings? Edited February 19, 2013 by AyKay47 Quote Link to comment https://forums.phpfreaks.com/topic/274705-mail-form/#findComment-1413514 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.