Jump to content

Server issue or PHP? - Contact Form Not Sending HTML correctly


Editor08

Recommended Posts

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";

}

}

 

?>

Link to comment
Share on other sites

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";
}
}

?>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.