2013-09-12 2 views
2

Я пытаюсь принять участие в форме и отправить результаты по электронной почте мне. Я хотел бы отформатировать электронное письмо, чтобы он выглядел идентично тому, что видит клиент, когда заполняет форму (или очень похоже). У меня возникают трудности с попыткой добиться этого. Любая помощь будет принята с благодарностью.Форма Php, отправленная по электронной почте

Вот мои данные формы

<form id="ContactKathryn" name="ContactKathryn" method="post" action="sendform/sendtokathryn.php">  
<table width="60%" border="0" cellpadding="2px" style="position:relative; left:20%"> 
<tr> 
<td width="25%" align="right">Name:</td> 
<td width="75%" align="left"><input name="ContactName" type="text" size="40" maxlength="100" /></td> 
</tr> 
<tr> 
<td align="right">Email Address:</td> 
<td align="left"><span id="sprytextfield1"> 
<input name="EmailAddress" type="text" id="EmailAddress" size="40" maxlength="150" /> 
<span class="textfieldRequiredMsg">A value is required.</span></span></td> 
</tr> 
<tr> 
<td align="right">Phone Number:</td> 
<td align="left"><span id="sprytextfield2"> 
<label for="PhoneNumber"></label> 
<input name="PhoneNumber" type="text" id="PhoneNumber" maxlength="15" /> 
<span class="textfieldRequiredMsg">A value is required.</span></span></td> 
</tr> 
<tr> 
<td align="right">Practice Name:</td> 
<td align="left"><input name="PracticeName" type="text" size="40" maxlength="100" /></td> 
</tr> 
<tr> 
<td align="right">Message:</td> 
<td align="left"><textarea name="Message" cols="40" rows="10">&nbsp;</textarea></td> 
</tr> 
<tr> 
<td align="center" width="25%"></td> 
<td align="center" width="75%"><input name="SubmitForm" type="submit" id="SubmitForm" onclick="MM_popupMsg('Are you sure you would like to submit this form?\r');return document.MM_returnValue" value="Submit Form" /><input type="reset" name="ResetForm" id="ResetForm" value="Reset Form" /></td> 
</table> 
</form> 

и это мой PHP код:

<?php 
// Where to redirect after form is processed. 
$url = 'http://www.mydomain.com'; 

// multiple recipients 
$to = '[email protected]'; // note the comma 

// subject 
$subject = 'Someone sent you a contact request'; 

// message 
$message = '<html><body> '; 
$message = 'MIME-Version: 1.0' . "\r\n"; 
$message = 'Content-type: text/html; charset=iso-8859-1'; 
$message = ' <p>Kathryn, someone sent you an email from the website</p>'; 
$message = ' <table>'; 
$message = '  <tr><td>Name:</td><td>'%$ContactName%'</td></tr>'; 
$message = '  <tr><td align="right">Email Address:</td><td align="left">'%$EmailAddress%'</td></tr>'; 
$message = '  <tr><td align="right">Phone Number:</td><td align="left">'%$PhoneNumber%'</td></tr>'; 
$message = '  <tr><td align="right">Practice Name:</td><td align="left">'%$PracticeName%'</td></tr>'; 
$message = '  <tr><td align="right">Message:</td><td align="left">'%$Message%'</textarea></td></tr>'; 
$message = ' </table></body></html>'; 

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


// Mail it 
mail($to, $subject, $message, 'From: '.$EmailAddress.'', $headers); 
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">' 
?> 

Единственное, я получаю в электронной почте, когда кто-то подает эту форму является: </table></body></html>

+5

Измените большинство ваших '=' операторов на '. =' При создании сообщения. –

+2

Вы не указали переменную ** $ EmailAddress ** И разделите переменную $ message на. = – Chinmay235

+0

Ваш код работает отлично, просто введите их в правильную '\ r \ n \ r \ n ... \ r \ n \ r \ n. \ r \ n \ r \ n 'в строку темы – Incognito

ответ

6

Объединить строки сообщений:

// message 
$message = '<html><body> '; 
$message .= ' <p>Kathryn, someone sent you an email from the JanusDentalAdvisors&acute; website</p>'; 
$message .= ' <table>'; 
$message .= '  <tr><td>Name:</td><td>'.$ContactName.'</td></tr>'; 
$message .= '  <tr><td align="right">Email Address:</td><td align="left">'.$EmailAddress.'</td></tr>'; 
$message .= '  <tr><td align="right">Phone Number:</td><td align="left">'.$PhoneNumber.'</td></tr>'; 
$message .= '  <tr><td align="right">Practice Name:</td><td align="left">'.$PracticeName.'</td></tr>'; 
$message .= '  <tr><td align="right">Message:</td><td align="left">'.$Message.'</textarea></td></tr>'; 
$message .= ' </table></body></html>'; 
+0

Это должно быть отмечено как ответ. – JeremyS

+1

Даже с заголовками MIME в фактическом сообщении? – Incognito

+0

Это не работает, так как он возвращает по электронной почте – tgbrunet

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