Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP电子邮件表单-一些获取HTML,一些获取纯文本_Php_Email_Html Parsing_Html Email - Fatal编程技术网

PHP电子邮件表单-一些获取HTML,一些获取纯文本

PHP电子邮件表单-一些获取HTML,一些获取纯文本,php,email,html-parsing,html-email,Php,Email,Html Parsing,Html Email,我一直在想这个问题。一些用户正在接收这封以纯文本形式发送的电子邮件(通过Flash表单),而另一些用户则接收以HTML格式发送的电子邮件(就像它应该接收的那样) 有人知道为什么会发生这种情况吗?有什么我可以在这里修复并确保它始终以HTML显示的吗 <?php $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; if(empty($_POS

我一直在想这个问题。一些用户正在接收这封以纯文本形式发送的电子邮件(通过Flash表单),而另一些用户则接收以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";
}

?> 


我不会在您的电子邮件中使用
,因为许多旧的电子邮件客户端无法识别这些是有效的标记。在发送后,查看原始电子邮件也是非常有用的。可能有一些有趣的事情正在发生,在那里更为明显。

这是邮件客户端的首要问题。大多数当前的邮件程序都可以将HTML邮件转换为纯文本,如果这是用户首选的格式,也可以

这是进一步由您的邮件不是完整的html文档。您只使用了几个

标记,而不是完整的
文档。您应该使用完整的html页面模板。(有关概述,请参阅。)


第三,你没有要求,你的脚本可以用来发送垃圾邮件。您的代码中没有可见的验证码保护,收件人完全自由。通过Flash表单使用它可以提供一些模糊性,但没有长期的保护。

它需要多少HTML才能自动获取?