2013-11-15 3 views
-1

У меня есть PHP-почтовый скрипт, и я пытаюсь добавить в него HTML-таблицу, но когда скрипт перестает работать.PHP MAILER, КАК ВСТАВИТЬ HTML ТАБЛИЦУ

Вот PHP Mailer скрипт

<?php 
// Insert your email/web addresses and correct paths 
$mailto = '[email protected]*******.co.uk' ; 
$from = "[email protected]" ; 
$subject = "Query from ******* 2012"; 
$headers = "From: ******* Website"; 
$formurl = "http://*******.co.uk/citycoaches3/formmail.php" ; 
$errorurl = "http://*******.co.uk/citycoaches3/error.php" ; 
$thankyouurl = "http://*******.co.uk/citycoaches3/thankyou.php" ; 

// Place Your Form info here... 
$pickuppoint = ($_POST['pickuppoint']); 
$destination = ($_POST['destination']); 

// Check If Empty 

// Add more Validation/Cleaning here... 

// Place your Corresponding info here... 
$message = 

    "Pick Point: $pickuppoint\n\n" . 
    "Destination: $destination\n\n" . 
    "noppl: $noppl\n\n" 
; 

// Leave Alone 
mail($mailto, $from, $message); 
header("Location: $thankyouurl"); 
exit ; 

?> 

Любая помощь по этому вопросу будет высоко оценен.

Вот что я пытался

<?php 

$fromAddr = '[email protected]********.co.uk'; // the address to show in From field. 
$recipientAddr = '[email protected]********.co.uk'; 
$subjectStr = '[Quick] Query From ********'; 
$date = date ("l, F jS, Y"); 
$time = date ("h:i A"); 
$forward = 1; 
$formurl = "http://www.********.co.uk/formmail.php" ; 
$errorurl = "http://www.********.co.uk/error.php" ; 
$thankyouurl = "http://www.********.co.uk/thankyou.php" ; 
header("location:thankyou.php"); 

$mailBodyText = <<<HHHHHHHHHHHHHH 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"> 
<title>Thank You</title> 
</head> 
<body> 
<img src="http://********.co.uk/images/mailsig.png" /> \n\n<br /> 
<span style="color:#900; font-size:18px;">Below is the result submitted from <strong>[Quick Quote] ******** Website</strong>. It was submitted on <strong>$date at $time</strong>.\n\n</span> 
<p><table width="600" border="1" cellpadding="5px"> 
    <tr> 
    <td><b>Pickup Date:</b> </td> 
    <td>{$_POST['date']}<br></td> 
    </tr> 
    <tr> 
    <td><b>Pickup Time:</b> </td> 
    <td>{$_POST['PickupTime-Hours']}:{$_POST['PickupTime-Mins']}<br></td> 
    </tr> 
    <tr> 
    <td><b>Pickup Point:</b> </td> 
    <td>{$_POST['PickUp-Point']}<br></td> 
    </tr> 
    <tr> 
    <td><b>Destination:</b> </td> 
    <td>{$_POST['Destination']}<br></td></tr> 
    <tr> 
    <td><b>No. Of People:</b> </td> 
    <td>{$_POST['No-of-Persons']}<br></td> 
    </tr> 
    <tr> 
    <td><b>Journey Type:</b> </td> 
    <td>{$_POST['JourneyType']}<br></td> 
    </tr> 
    <tr> 
    <tr> 
    <td><b>Return Date:</b> </td> 
    <td>{$_POST['returnDate']}<br></td> 
    </tr> 
     <tr> 
    <td><b>Return Time:</b> </td> 
    <td>{$_POST['returnTime-Hours']}{$_POST['returnTime-Mins']}<br></td> 
    </tr> 
    <tr> 
    <tr> 
    <td><b>Vehicle Type:</b> </td> 
    <td>{$_POST['type']}<br></td> 
    </tr> 
    <tr> 
    <tr> 
    <td><b>Full Name:</b> </td> 
    <td>{$_POST['Full-Name']}<br></td> 
    </tr> 
    <tr> 
    <tr> 
    <td><b>Tel/Mobile:</b> </td> 
    <td>{$_POST['Tel-Mobile']}<br></td> 
    </tr> 
     <tr> 
    <td><b>Email:</b> </td> 
    <td>{$_POST['Email']}<br></td> 
    </tr> 
    <tr> 
</table> 




</p> 
</body> 
</html> 
HHHHHHHHHHHHHH; 

$headers= <<<TTTTTTTTTTTT 
From: $fromAddr 
MIME-Version: 1.0 
Content-Type: text/html; 
TTTTTTTTTTTT; 

mail($mailto, $from, $message, 
    "From: \"$name\" <$email>" . $headersep . "Reply-To: \"$name\" <$email>" . $headersep); 
header("Location: $thankyouurl"); 
exit ; 

?> 

Тем не менее не работает по какой-то причине.

Херес UPDATE:

После удаления

"From: \"$name\" <$email>" . $headersep . "Reply-To: \"$name\" <$email>" . 

мне удалось получить электронную почту, но вставили весь код, который находится в $ сообщении.

+0

Показать код С таблицей, как вы пробовали, пожалуйста. – CaptainCarl

+0

Возможный дубликат [Можно ли отправлять смешанные письма txt/html с помощью функции php mail?] (Http://stackoverflow.com/questions/3675605/is-it-possible-to-send-mixed-txt-html -mails-with-the-php-mail-function) – Quentin

+0

Вот пример, который я пробовал, но, похоже, не работает – Adil

ответ

-1

Используйте php html email и вставить таблицу в электронной части тела

+0

Я использовал PHP HTML-почерк в прошлом, но я использую http: //www.websitecodetutorials.com/code/jquery-plugins/jquery-ajaxsubmit.php отсюда. Когда я вставляю теги HTML в $ message, скрипт перестает работать. – Adil

+0

ОК, поэтому изначально вопрос не был полным. Вы получаете какую-либо ошибку? Попробуйте error_reporting (E_ALL) и покажите ошибки, если вы получаете пустую страницу вместо ошибки –

+0

Приношу свои извинения за не предоставление всей информации при запуске. Я обновил вопрос о том, как отправить его по электронной почте после удаления нескольких заголовков, но он отправляет весь код по электронной почте. – Adil

0

Попробуйте получать HTML из файла:

$message = file_get_contents('./path/email.html') // it's easyer to maintain but not mandatory 

И добавить тип содержимого HTML заголовок

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

затем

mail($mailto, $from, $message, $headers) //notice the headers; 
+0

Я попробую это. Спасибо за вашу помощь – Adil

+0

Пробовал это, не работал – Adil

-1

Если вы хотите, чтобы отобразить messagebody в своем сообщении для получателя, может быть, вы должны попытаться поставить кавычки в коде:

$mailBodyText = "<<<HHHHHHHHHHHHHH 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"> 
<title>Thank You</title> 
</head> 
<body> 
<img src="http://********.co.uk/images/mailsig.png" /> \n\n<br /> 
<span style="color:#900; font-size:18px;">Below is the result submitted from <strong>  [Quick Quote] ******** Website</strong>. It was submitted on <strong>$date at  $time</strong>.\n\n</span> 
<p><table width="600" border="1" cellpadding="5px"> 
<tr> 
<td><b>Pickup Date:</b> </td> 
<td>{$_POST['date']}<br></td> 
</tr> 
<tr> 
    <td><b>Pickup Time:</b> </td> 
<td>{$_POST['PickupTime-Hours']}:{$_POST['PickupTime-Mins']}<br></td> 
</tr> 
<tr> 
<td><b>Pickup Point:</b> </td> 
<td>{$_POST['PickUp-Point']}<br></td> 
    </tr> 
    <tr> 
    <td><b>Destination:</b> </td> 
    <td>{$_POST['Destination']}<br></td></tr> 
    <tr> 
    <td><b>No. Of People:</b> </td> 
    <td>{$_POST['No-of-Persons']}<br></td> 
    </tr> 
    <tr> 
<td><b>Journey Type:</b> </td> 
<td>{$_POST['JourneyType']}<br></td> 
</tr> 
<tr> 
    <tr> 
    <td><b>Return Date:</b> </td> 
    <td>{$_POST['returnDate']}<br></td> 
    </tr> 
    <tr> 
    <td><b>Return Time:</b> </td> 
    <td>{$_POST['returnTime-Hours']}{$_POST['returnTime-Mins']}<br></td> 
</tr> 
<tr> 
<tr> 
<td><b>Vehicle Type:</b> </td> 
<td>{$_POST['type']}<br></td> 
</tr> 
<tr> 
    <tr> 
    <td><b>Full Name:</b> </td> 
    <td>{$_POST['Full-Name']}<br></td> 
</tr> 
<tr> 
    <tr> 
<td><b>Tel/Mobile:</b> </td> 
    <td>{$_POST['Tel-Mobile']}<br></td> 
</tr> 
    <tr> 
    <td><b>Email:</b> </td> 
<td>{$_POST['Email']}<br></td> 
</tr> 
<tr> 
</table>"; 
+0

, пожалуйста, измените двойную кавычку в одинарную цитату внутри двойной кавычки :) –

+0

Еще раз проверьте свой код, вы идете в совершенно неправильном направлении ... Использование <<< * лучше при вставке html внутри переменной php. –

+0

Пробовал это с одной цитатой .. не работал вообще. – Adil

0

Как я думаю, что другие ответы не дали вам правильное направление, но , вот мое дополнение:

$name = _("test"); // Or insert variable 

$message = <<<EOF 

    // html here 
    <p>hello $name</p> 

EOF; 

$to = ""; 

$subject = ""; 

// To send HTML mail, the Content-type header must be set 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

// Additional headers 
$headers .= 'From: Example <[email protected]>' . "\r\n"; 

// Mail it 
mail($to, $subject, $email, $headers); 

Вам нужно HTML-заголовки при отправке по электронной почте ..

0

ВСЕ большое спасибо за вашу помощь и предложения.

Я, наконец, получил его работу, вот что я сделал.

В $ сообщении в вставлено:

$message = "<html><body> 
<b><FONT COLOR='#900' SIZE='13px'>Hi this is working now</FONT></b> 
<table width='400' border='0' cellpadding='5px'> 
<tr> 
    <td><b><FONT COLOR='#900'>Pickup Date:</FONT></b> </td> 
    <td>{$_POST['date']}<br></td> 
    </tr> 
</table> 
</html></body>"; 

И добавили следующие заголовки

$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 

Все работает спасибо всем еще раз!

Смежные вопросы