简体   繁体   English

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

[英]PHP email form - Some get HTML some get Plain Text

I've been trying to figure this one out for a while. 我一直试图弄清楚这一点。 Some users are receiving this email (via a Flash form) sent in plain text and others in full HTML (like it should). 一些用户正在接收此电子邮件(通过Flash表单)以纯文本形式发送,而其他用户则以完整HTML形式发送(应该如此)。

Would anyone know why this is happening, anything I could fix here and make sure it always get displayed in HTML all the time? 有谁知道为什么会这样,我在这里可以解决的所有问题,并确保始终将其始终显示为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";
}

?> 

That's foremost a mail client issue. 首要的是邮件客户端问题。 Most current mail programs can convert HTML mails into plaintext, and if that's the users preferred format, will do. 当前大多数邮件程序都可以将HTML邮件转换为纯文本,如果这是用户首选的格式,则可以。

This is furthered by your mails not being complete html documents. 您的邮件不是完整的html文档,这进一步加剧了这种情况。 You use just a few <br> tags, not a complete <html> document. 您仅使用几个<br>标记,而不使用完整的<html>文档。 You should use a complete html page template. 您应该使用完整的html页面模板。 (See http://articles.sitepoint.com/article/code-html-email-newsletters for some overview.) (有关一些概述,请参见http://articles.sitepoint.com/article/code-html-email-newsletters 。)

Third, which you didn't ask for, your script is abusable for sending out spam. 第三,您不需要的脚本可以滥用发送垃圾邮件。 There's no visible captcha protection in your code, and the recipient is completely free form. 您的代码中没有可见的验证码保护,接收者是完全自由形式。 Using this via a Flash form provides some obscurity, but no long-term protection. 通过Flash表单使用此功能可能会带来一些不便,但不能提供长期保护。

I would not use 我不会用
in your email, as many older email clients won't recognize those are valid tags. 在您的电子邮件中,由于许多较旧的电子邮件客户端无法识别那些有效标签。 It would also be quite useful to see the raw email, after being sent. 发送后查看原始电子邮件也将非常有用。 There may be something interesting going on that is more visible there. 可能会发生一些有趣的事情,在那儿更明显。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM