使用PHP变量

使用PHP变量,php,Php,因此,这是我的sendmail.php中代码的一部分,它可以完美地工作: $email = $_POST["email"]; $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; $headers .= 'From: <webmaster@example.com'>' . "\r\n"; $email=$\u POST[“

因此,这是我的sendmail.php中代码的一部分,它可以完美地工作:

$email = $_POST["email"];

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers .= 'From: <webmaster@example.com'>' . "\r\n";
$email=$\u POST[“email”];
$headers=“MIME版本:1.0”。“\r\n”;
$headers.=“内容类型:text/html;字符集=iso-8859-1”。“\r\n”;

$headers.='From:问题是这一行:

$headers .= 'From: <"$email">' . "\r\n";
$headers.='From:'。“\r\n”;
应该是:

$headers .= 'From: <"' . $email . '">' . "\r\n";
$headers.='From:'。“\r\n”;

因为变量的内容是单引号,
$email
变成了文字“$email”,这至少会导致接收电子邮件的问题,因为垃圾邮件过滤器看到这一点时通常会发出红旗。

另一种处理高格式内容中变量的方法是使用:

John Conde给出的例子如下:

$headers .= 'From: <"' . $email . '">' . "\r\n";
$headers .= sprintf('From: <"%s">' . "\r\n", $email);
好处是你不必担心平衡报价。因为变量总是在行的末尾,所以在我看来,这使得检查调试稍微容易一些

编辑:此外,由于这种格式更好,但仍然没有发送(根据原始海报的评论),请尝试以下变体。无报价:

$headers .= sprintf('From: <%s>' . "\r\n", $email);

+为了提高速度,但您应该添加更多细节。您在写这篇文章时正在这样做。:)嗯,电子邮件没有记录它的目的地,但是当硬编码电子邮件地址而不是使用$email时,它会记录。这在我的回答中已经解释过了,所以我不确定你想说什么哦,错过了那个,但是如果没有单引号,我怎么做?什么不起作用?刚刚测试了我上面的一行&
sprintf
工作得很好。电子邮件不会被发送,但是当硬编码一个示例电子邮件地址时它会被发送。好吧,我的格式设置工作正常,但邮件仍然不工作。请参阅我的编辑,了解使用我的变量放置方法的另外两个示例。仍然没有成功,这很奇怪。。这是工作正常的默认示例:$headers.='From:'。“\r\n”;
$headers .= sprintf('From: <%s>' . "\r\n", $email);
$headers .= sprintf('From: %s' . "\r\n", $email);