Editor08 Posted October 3, 2009 Share Posted October 3, 2009 I am using the following code which is being sent over SMTP. When email message is received in gmail raw html appears. In Outlook the message is blank. What is the issue? A php error or server problem? (process-form.php) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style> body { background-color: #6BBDB9; } div { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; } div.mailbody { font-family: "Courier New", Courier, mono; } div.mailfail { width: 450px; border: 3px solid #000000; padding: 22px 22px 22px 22px; text-align: center; vertical-align: middle; background-color: #FEBA3B; color: #3F2401; font-weight: bold; } div.mailsent { width: 450px; border: 3px solid #000000; padding: 22px 22px 22px 22px; text-align: center; vertical-align: middle; background-color: #FF900B; color: #000000; font-weight: bold; } </style> <title><?php echo($title); ?></title> <?php require ("smtpclass.php"); if($_SERVER["REQUEST_METHOD"] == "POST") { $smtp=new SMTPMAIL; $stemail = "test@gmail.com"; //EMAIL TO RECIEVE THE PRESENTATION BOOKINGS $stsubject = "Contact from Website"; //THE SUBJECT OF THE EMAIL $stfrom = "do-not-send@website.com"; //THE 'From:' EMAIL ADDRESS $stwho= "website"; //NAME TO APPEAR ON THE EMAIL $streply= "do-no-reply@website.com"; //THE REPLY-TO ADDRESS $cc=""; if(!$_POST['fullname']) { header("Location: index.html"); } $headers = "From: " .$stwho. "<".$stfrom. ">\n" . "Reply-To: " .$streply. "\n"; $headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // message $message = ""; $artype = array( "keynote" => "Keynote Address", "seminar" => "Seminar", "workforce" => "Workforce Development", "training" => "Leadership / Staff Training" ); $arevent = array( "forum" => "Forum", "formal" => "Formal Address", "informal" => "Informal Address - Audience Interaction", "discussion" => "Discussion", "solving" => "Problem Solving" ); $audtype = ""; if($_POST['professional']) { $audtype.="Professional"; } if($_POST['management']) { $audtype.="Management"; } if($_POST['employees']) { $audtype.="Employees"; } if($_POST['youth']) { $audtype.="Youth"; } $audgend = ""; if($_POST['male']) { $audgend.="Male"; } if($_POST['female']) { $audgend.="Female"; } if($_POST['coed']) { $audgend = "Co-ed"; } $ftimeframe = "Multi Day"; if($_POST['timeframe'] == 'single') { $ftimeframe = "Single Day"; } $fotherspeakers = "None"; if($_POST['otherspeakers'] == 'yes') { $fotherspeakers = strip_tags($_POST['whospeakers']); } $avequip = "None"; if($_POST['equip'] == 'yes') { $avequip = strip_tags($_POST['yesequip']); } $artopics = array( "book" => "The book", "leadership" => "Leadership & Management", "communication" => "Communication", "planning" => "Planning", "skills" => "Presentation Skills", "contracts" => "Government Contracts" ); $message .= "<html><body>"; $message .= "\n<table rules=\"all\" style=\"border-color: #666;\" cellpadding=\"10\" width=\"100%\">"; $message .= "\n<tr style='background: #eee;'><td width='30%'><strong>Name:</strong> </td><td width='70%'>" . strip_tags($_POST['fullname']) . "</td></tr>"; $message .= "\n<tr style='background: #eee;'><td><strong>Phone:</strong> </td><td>" . strip_tags($_POST['phone']) . "</td></tr>"; $message .= "\n<tr style='background: #eee;'><td><strong>Email:</strong> </td><td>" . strip_tags($_POST['email']) . "</td></tr>"; $message .= "\n<tr style='background: #eee;'><td><strong>Organization:</strong> </td><td>" . strip_tags($_POST['organization']) . "</td></tr>"; $message .= "\n<tr style='background: #eee;'><td><strong>Address:</strong> </td><td>" . strip_tags($_POST['address']) . "</td></tr>"; $message .= "\n<tr style='background: #eee;'><td><strong>Type of Presentation:</strong> </td><td>"; if($_POST['type'] == "other") { $message .= strip_tags($_POST['typeother']) . "</td></tr>"; } else { $message .= $artype[$_POST['type']] . "</td></tr>"; } $message .= "\n<tr style='background: #eee;'><td><strong>Type of Event:</strong> </td><td>" . $arevent[$_POST['event']] . "</td></tr>"; $message .= "\n<tr style='background: #eee;'><td><strong>Audience Type:</strong> </td><td><ul>" . $audtype . "</ul></td></tr>"; if($_POST['youth']) { $message .= "\n<tr style='background: #eee;'><td><strong>Youth Age Group:</strong> </td><td>" . strip_tags($_POST['youthother']) . "</td></tr>"; } $message .= "\n<tr style='background: #eee;'><td><strong>Audience Gender:</strong> </td><td><ul>" . $audgend . "</ul></td></tr>"; $message .= "\n<tr style='background: #eee;'><td><strong>Event Time Frame:</strong> </td><td>" . $ftimeframe . "</td></tr>"; if($_POST['timeframe'] == 'multi') { $message .= "\n<tr style='background: #eee;'><td><strong>Days:</strong> </td><td>" . strip_tags($_POST['multidays']) . "</td></tr>"; } $message .= "\n<tr style='background: #eee;'><td><strong>Other Speakers:</strong> </td><td>" . $fotherspeakers . "</td></tr>"; if($fotherspeakers != 'None') { $message .= "\n<tr style='background: #eee;'><td><strong>Speakers Topics:</strong> </td><td>" . strip_tags($_POST['speakerstopics']) . "</td></tr>"; } $message .= "\n<tr style='background: #eee;'><td><strong>A/V Equipment:</strong> </td><td>" . $avequip . "</td></tr>"; $message .= "\n<tr style='background: #eee;'><td><strong>Desired Topics:</strong> </td><td>"; if($_POST['topics'] == "other") { $message .= strip_tags($_POST['topicsother']) . "</td></tr>"; } else { $message .= $artopics[$_POST['topics']] . "</td></tr>"; } $message .= "\n</table>"; $message .= "\n</body></html>"; if(!$smtp->send_smtp_mail($stemail,$stsubject,$message,$headers,$cc,$stfrom)) $error="Error in sending the following message please directly email contact@website.com: ".$smtp->error; else $report="The following message was sent successfully!"; } ?> <?php @extract($_POST);?> </head> <body> <center><div class="mailsent"><?php echo $report; echo $error; ?>:<br /><br /> <div class="mailbody"><?php echo($message); ?></div><br /><br /> <a href="javascript:history.go(-1);">Go Back</a> </div></center> </body> </html> (smtpclass.php) <?php class SMTPMAIL { var $host=""; var $port=25; var $error; var $state; var $con=null; var $greets=""; function SMTPMAIL() { $this->host=ini_get("SMTP"); $this->port=25; $this->state="DISCONNECTED"; } function set_host($host) { $this->host=$host; } function set_port($port=25) { $this->port=$port; } function error() { return $this->error; } function connect($host="",$port=25) { if(!empty($host)) $this->host($host); $this->port=$port; if($this->state!="DISCONNECTED") { $this->error="Error : connection already open."; return false; } $this->con=@fsockopen($this->host,$this->port,$errno,$errstr); if(!$this->con) { $this->error="Error($errno):$errstr"; return false; } $this->state="CONNECTED"; $this->greets=$this->get_line(); return true; } function send_smtp_mail($stemail,$stsubject,$data,$headers,$cc="",$stfrom='support') { $ret=$this->connect(); if(!$ret) return $ret; $this->put_line("MAIL FROM: $stfrom"); $response=$this->get_line(); if(intval(strtok($response," "))!=250) { $this->error=strtok($response,"\r\n"); return false; } $stemail_err=preg_split("/[,;]/",$stemail); foreach($stemail_err as $mailto) { $this->put_line("RCPT TO: $mailto"); $response=$this->get_line(); if(intval(strtok($response," "))!=250) { $this->error=strtok($response,"\r\n"); return false; } } if(!empty($cc)) { $stemail_err=preg_split("/[,;]/",$cc); foreach($stemail_err as $mailto) { $this->put_line("RCPT TO: $mailto"); $response=$this->get_line(); if(intval(strtok($response," "))!=250) { $this->error=strtok($response,"\r\n"); return false; } } } $this->put_line("DATA"); $response=$this->get_line(); if(intval(strtok($response," "))!=354) { $this->error=strtok($response,"\r\n"); return false; } $this->put_line("TO: $stemail"); $this->put_line("SUBJECT: $stsubject"); $this->put_line($data); $this->put_line("."); $response=$this->get_line(); if(intval(strtok($response," "))!=250) { $this->error=strtok($response,"\r\n"); return false; } $this->close(); return true; } // This function is used to get response line from server function get_line() { while(!feof($this->con)) { $line.=fgets($this->con); if(strlen($line)>=2 && substr($line,-2)=="\r\n") return(substr($line,0,-2)); } } ////This functiuon is to retrive the full response message from server ////This functiuon is to send the command to server function put_line($msg="") { return @fputs($this->con,"$msg\r\n"); } function close() { @fclose($this->con); $this->con=null; $this->state="DISCONNECTED"; } } ?> Quote Link to comment Share on other sites More sharing options...
sKunKbad Posted October 3, 2009 Share Posted October 3, 2009 You should simplify your script to the bare essentials for testing, and also use code tags when posting. Quote Link to comment Share on other sites More sharing options...
Editor08 Posted October 3, 2009 Author Share Posted October 3, 2009 okay... but I want to make sure it works all together.. Any actual answers out there? Quote Link to comment Share on other sites More sharing options...
Editor08 Posted October 3, 2009 Author Share Posted October 3, 2009 Would like to note this is the content I receive in gmail after sending the contact form (outlook email is blank): <html><body> <table rules="all" style="border-color: #666;" cellpadding="10" width="100%"> <tr style='background: #eee;'><td width='30%'><strong>Name:</strong> </td><td width='70%'>test</td></tr> <tr style='background: #eee;'><td><strong>Phone:</strong> </td><td>000-000-0000</td></tr> <tr style='background: #eee;'><td><strong>Email:</strong> </td><td>testing@provadomarketing.com</td></tr> <tr style='background: #eee;'><td><strong>Organization:</strong> </td><td>Tester</td></tr> <tr style='background: #eee;'><td><strong>Address:</strong> </td><td>test st.</td></tr> <tr style='background: #eee;'><td><strong>Type of Presentation:</strong> </td><td>Keynote Address</td></tr> <tr style='background: #eee;'><td><strong>Type of Event:</strong> </td><td>Forum</td></tr> <tr style='background: #eee;'><td><strong>Audience Type:</strong> </td><td><ul>Management</ul></td></tr> <tr style='background: #eee;'><td><strong>Audience Gender:</strong> </td><td><ul>Female</ul></td></tr> <tr style='background: #eee;'><td><strong>Event Time Frame:</strong> </td><td>Single Day</td></tr> <tr style='background: #eee;'><td><strong>Other Speakers:</strong> </td><td>None</td></tr> <tr style='background: #eee;'><td><strong>A/V Equipment:</strong> </td><td>None</td></tr> <tr style='background: #eee;'><td><strong>Desired Topics:</strong> </td><td>The book</td></tr> </table> </body></html> process-form.php <!DOCTYPE HTML PUBLIC ”-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> <html> <head> <meta http-equiv=“Content-Type” content=“text/html; charset=iso-8859–1”> <style> body { background-color: #6BBDB9; } div { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; } div.mailbody { font-family: “Courier New”, Courier, mono; } div.mailfail { width: 450px; border: 3px solid #000000; padding: 22px 22px 22px 22px; text-align: center; vertical-align: middle; background-color: #FEBA3B; color: #3F2401; font-weight: bold; } div.mailsent { width: 450px; border: 3px solid #000000; padding: 22px 22px 22px 22px; text-align: center; vertical-align: middle; background-color: #FF900B; color: #000000; font-weight: bold; } </style> <title><?php echo($title); ?></title> <?php require (“smtpclass.php”); if($_SERVER[“REQUEST_METHOD”] == “POST”) { $smtp=new SMTPMAIL; $stemail = “test@gmail.com”; //EMAIL TO RECIEVE THE PRESENTATION BOOKINGS $stsubject = “Contact from Website”; //THE SUBJECT OF THE EMAIL $stfrom = “do-not-send@website.com”; //THE ‘From:’ EMAIL ADDRESS $stwho= “website”; //NAME TO APPEAR ON THE EMAIL $streply= “do-no-reply@website.com”; //THE REPLY-TO ADDRESS $cc=””; if(!$_POST[‘fullname’]) { header(“Location: index.html”); } $headers = “From: ” .$stwho. ”<”.$stfrom. ”>\n” . “Reply-To: ” .$streply. ”\n”; $headers .= ‘MIME-Version: 1.0’ . ”\r\n”; $headers .= ‘Content-type: text/html; charset=iso-8859–1’ . ”\r\n”; // message $message = ””; $artype = array( “keynote” => “Keynote Address”, “seminar” => “Seminar”, “workforce” => “Workforce Development”, “training” => “Leadership / Staff Training” ); $arevent = array( “forum” => “Forum”, “formal” => “Formal Address”, “informal” => “Informal Address – Audience Interaction”, “discussion” => “Discussion”, “solving” => “Problem Solving” ); $audtype = ””; if($_POST[‘professional’]) { $audtype.=“Professional”; } if($_POST[‘management’]) { $audtype.=“Management”; } if($_POST[‘employees’]) { $audtype.=“Employees”; } if($_POST[‘youth’]) { $audtype.=“Youth”; } $audgend = ””; if($_POST[‘male’]) { $audgend.=“Male”; } if($_POST[‘female’]) { $audgend.=“Female”; } if($_POST[‘coed’]) { $audgend = “Co-ed”; } $ftimeframe = “Multi Day”; if($_POST[‘timeframe’] == ‘single’) { $ftimeframe = “Single Day”; } $fotherspeakers = “None”; if($_POST[‘otherspeakers’] == ‘yes’) { $fotherspeakers = strip_tags($_POST[‘whospeakers’]); } $avequip = “None”; if($_POST[‘equip’] == ‘yes’) { $avequip = strip_tags($_POST[‘yesequip’]); } $artopics = array( “book” => “The book”, “leadership” => “Leadership & Management”, “communication” => “Communication”, “planning” => “Planning”, “skills” => “Presentation Skills”, “contracts” => “Government Contracts” ); $message .= ”<html><body>”; $message .= ”\n<table rules=\“all\” style=\“border-color: #666;\” cellpadding=\“10\” width=\“100%\”>”; $message .= ”\n<tr style=‘background: #eee;’><td width=‘30%’><strong>Name:</strong> </td><td width=‘70%’>” . strip_tags($_POST[‘fullname’]) . ”</td></tr>”; $message .= ”\n<tr style=‘background: #eee;’><td><strong>Phone:</strong> </td><td>” . strip_tags($_POST[‘phone’]) . ”</td></tr>”; $message .= ”\n<tr style=‘background: #eee;’><td><strong>Email:</strong> </td><td>” . strip_tags($_POST[‘email’]) . ”</td></tr>”; $message .= ”\n<tr style=‘background: #eee;’><td><strong>Organization:</strong> </td><td>” . strip_tags($_POST[‘organization’]) . ”</td></tr>”; $message .= ”\n<tr style=‘background: #eee;’><td><strong>Address:</strong> </td><td>” . strip_tags($_POST[‘address’]) . ”</td></tr>”; $message .= ”\n<tr style=‘background: #eee;’><td><strong>Type of Presentation:</strong> </td><td>”; if($_POST[‘type’] == “other”) { $message .= strip_tags($_POST[‘typeother’]) . ”</td></tr>”; } else { $message .= $artype[$_POST[‘type’]] . ”</td></tr>”; } $message .= ”\n<tr style=‘background: #eee;’><td><strong>Type of Event:</strong> </td><td>” . $arevent[$_POST[‘event’]] . ”</td></tr>”; $message .= ”\n<tr style=‘background: #eee;’><td><strong>Audience Type:</strong> </td><td><ul>” . $audtype . ”</ul></td></tr>”; if($_POST[‘youth’]) { $message .= ”\n<tr style=‘background: #eee;’><td><strong>Youth Age Group:</strong> </td><td>” . strip_tags($_POST[‘youthother’]) . ”</td></tr>”; } $message .= ”\n<tr style=‘background: #eee;’><td><strong>Audience Gender:</strong> </td><td><ul>” . $audgend . ”</ul></td></tr>”; $message .= ”\n<tr style=‘background: #eee;’><td><strong>Event Time Frame:</strong> </td><td>” . $ftimeframe . ”</td></tr>”; if($_POST[‘timeframe’] == ‘multi’) { $message .= ”\n<tr style=‘background: #eee;’><td><strong>Days:</strong> </td><td>” . strip_tags($_POST[‘multidays’]) . ”</td></tr>”; } $message .= ”\n<tr style=‘background: #eee;’><td><strong>Other Speakers:</strong> </td><td>” . $fotherspeakers . ”</td></tr>”; if($fotherspeakers != ‘None’) { $message .= ”\n<tr style=‘background: #eee;’><td><strong>Speakers Topics:</strong> </td><td>” . strip_tags($_POST[‘speakerstopics’]) . ”</td></tr>”; } $message .= ”\n<tr style=‘background: #eee;’><td><strong>A/V Equipment:</strong> </td><td>” . $avequip . ”</td></tr>”; $message .= ”\n<tr style=‘background: #eee;’><td><strong>Desired Topics:</strong> </td><td>”; if($_POST[‘topics’] == “other”) { $message .= strip_tags($_POST[‘topicsother’]) . ”</td></tr>”; } else { $message .= $artopics[$_POST[‘topics’]] . ”</td></tr>”; } $message .= ”\n</table>”; $message .= ”\n</body></html>”; if(!$smtp->send_smtp_mail($stemail,$stsubject,$message,$headers,$cc,$stfrom)) $error=“Error in sending the following message please directly email contact@website.com: ”.$smtp->error; else $report=“The following message was sent successfully!”; } ?> <?php @extract($_POST);?> </head> <body> <center><div class=“mailsent”><?php echo $report; echo $error; ?>:<br /><br /> <div class=“mailbody”><?php echo($message); ?></div><br /><br /> <a href=“javascript:history.go(-1);”>Go Back</a> </div></center> </body> </html> SMTP php file contents <?php class SMTPMAIL { var $host=""; var $port=25; var $error; var $state; var $con=null; var $greets=""; function SMTPMAIL() { $this->host=ini_get("SMTP"); $this->port=25; $this->state="DISCONNECTED"; } function set_host($host) { $this->host=$host; } function set_port($port=25) { $this->port=$port; } function error() { return $this->error; } function connect($host="",$port=25) { if(!empty($host)) $this->host($host); $this->port=$port; if($this->state!="DISCONNECTED") { $this->error="Error : connection already open."; return false; } $this->con=@fsockopen($this->host,$this->port,$errno,$errstr); if(!$this->con) { $this->error="Error($errno):$errstr"; return false; } $this->state="CONNECTED"; $this->greets=$this->get_line(); return true; } function send_smtp_mail($stemail,$stsubject,$data,$headers,$cc="",$stfrom='support') { $ret=$this->connect(); if(!$ret) return $ret; $this->put_line("MAIL FROM: $stfrom"); $response=$this->get_line(); if(intval(strtok($response," "))!=250) { $this->error=strtok($response,"\r\n"); return false; } $stemail_err=preg_split("/[,;]/",$stemail); foreach($stemail_err as $mailto) { $this->put_line("RCPT TO: $mailto"); $response=$this->get_line(); if(intval(strtok($response," "))!=250) { $this->error=strtok($response,"\r\n"); return false; } } if(!empty($cc)) { $stemail_err=preg_split("/[,;]/",$cc); foreach($stemail_err as $mailto) { $this->put_line("RCPT TO: $mailto"); $response=$this->get_line(); if(intval(strtok($response," "))!=250) { $this->error=strtok($response,"\r\n"); return false; } } } $this->put_line("DATA"); $response=$this->get_line(); if(intval(strtok($response," "))!=354) { $this->error=strtok($response,"\r\n"); return false; } $this->put_line("TO: $stemail"); $this->put_line("SUBJECT: $stsubject"); $this->put_line($data); $this->put_line("."); $response=$this->get_line(); if(intval(strtok($response," "))!=250) { $this->error=strtok($response,"\r\n"); return false; } $this->close(); return true; } // This function is used to get response line from server function get_line() { while(!feof($this->con)) { $line.=fgets($this->con); if(strlen($line)>=2 && substr($line,-2)=="\r\n") return(substr($line,0,-2)); } } ////This functiuon is to retrive the full response message from server ////This functiuon is to send the command to server function put_line($msg="") { return @fputs($this->con,"$msg\r\n"); } function close() { @fclose($this->con); $this->con=null; $this->state="DISCONNECTED"; } } ?> Quote Link to comment Share on other sites More sharing options...
Editor08 Posted October 3, 2009 Author Share Posted October 3, 2009 Problem solved needed to add PHP Code: $this->put_line($headers); to smtpclass.php Quote Link to comment 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.