2011-03-24 49 views
0

我一直在試圖找出一段時間。一些用戶正在收到以純文本形式發送的此電子郵件(通過Flash表單),其他用戶則以完整的HTML形式發送(如應該)。PHP電子郵件表格 - 有些HTML獲取純文本

有人會知道爲什麼會發生這種情況,我可以在這裏修復任何問題,並確保它始終以HTML格式顯示。

<?php 
$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
    if(empty($_POST['senderEmail'])){ 
    echo"no email address found"; 
    exit; 
} 
$senderName = $_POST['senderName']; 
$senderEmail = $_POST['senderEmail']; 
$senderPhone = $_POST['senderPhone']; 
$senderMsg = nl2br($_POST['senderMsg']); 
$sitename = "somesite"; 
$to_myself = "myemail"; 
$to_visitor = $_POST['senderEmail']; 
$ToName = "somename"; 
$date = date("m/d/Y H:i:s"); 
$ToSubject = "Email From $senderName via $sitename"; 
$comments = $msgPost; 

$EmailBody = "A visitor to $sitename has left the following information<br /> 
Sent By: $senderName<br /> 
Email: $senderEmail<br /> 
Phone: $senderPhone 
<br /><br /> 
Message Sent: 
<br />$senderMsg<br />"; 

$EmailBody_visitor = "You have just left the following information at $sitename <br /> 
Sent By: $senderName<br /> 
Email: $senderEmail<br /> 
Phone: $senderPhone 
<br /><br /> 
Message Sent: 
<br />$senderMsg<br />"; 

$EmailFooter = "<br />Sent: $date<br /><br />"; 
$Message = $EmailBody.$EmailFooter; 
$Message_visitor = $EmailBody_visitor.$EmailFooter; 

$ok = mail($to_myself, $ToSubject, $Message, $headers . "From:$senderName <".$senderEmail.">"); 
$ok = mail($to_visitor, $ToSubject, $Message_visitor, $headers . "From:$sitename <".$to_myself.">"); 

if($ok){ 
echo "retval=1"; 
}else{ 
echo "retval=0"; 
} 

?> 
+0

需要多少HTML才能自動提取? – detonate 2011-03-25 01:35:19

回答

0

我不會在你的電子郵件使用
,許多舊的電子郵件客戶端將無法識別這些都是有效的標籤。在發送之後查看原始電子郵件也是非常有用的。可能有一些有趣的事情在那裏更加明顯。

1

這首先是郵件客戶端問題。大多數當前的郵件程序可以將HTML郵件轉換爲明文,如果這是用戶首選的格式,則可以。

這是通過您的郵件不完整的HTML文件進一步推動。您只使用幾個<br>標籤,而不是完整的<html>文件。你應該使用完整的html頁面模板。 (請參閱http://articles.sitepoint.com/article/code-html-email-newsletters的一些概述。)

第三,您沒有要求,您的腳本是可濫用的發送垃圾郵件。代碼中沒有可見的驗證碼保護,收件人完全是自由形式。通過Flash表單使用這個提供了一些默認,但沒有長期的保護。

相關問題