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 mail()中使用变量$服务器[';HTTP#U主机';]_Php_Email - Fatal编程技术网

无法在php mail()中使用变量$服务器[';HTTP#U主机';]

无法在php mail()中使用变量$服务器[';HTTP#U主机';],php,email,Php,Email,我测试了这个: <?php $to = "recipient@example.com"; $subject = "Hi!"; $server = $_SERVER['HTTP_HOST']; $body = "From: ". $server. "<br>"; $body .= "Hi,\n\nHow are you?"; if (mail($to, $subject, $body)) { echo("<p>Message successfully

我测试了这个:

<?php
 $to = "recipient@example.com";
 $subject = "Hi!";
 $server = $_SERVER['HTTP_HOST'];
 $body = "From: ". $server. "<br>";
 $body .= "Hi,\n\nHow are you?";
 if (mail($to, $subject, $body)) {
   echo("<p>Message successfully sent!</p>");
  } else {
   echo("<p>Message delivery failed...</p>");
  }
 ?>
在电子邮件正文中

很奇怪,这不合理? 这只是一个PHP页面。我从浏览器中调用此页面!!请试试

更新!!好的,我直接使用字符串“user.SERVER.com”,而不是使用$\u SERVER['HTTP\u HOST']。而且,它不起作用!! 但是,当我稍微修改一个字符串时,比如“user.server.com.us”,它就可以工作了!!
因此,基本上,邮件服务器会填充自己对其域的引用,但不确定为什么会这样做…

一些垃圾邮件服务器会将您的邮件评级为“垃圾邮件”,用于正文中的URL。不幸的是,除非您有权访问发件人和收件人的邮件服务器日志,否则您很难通过
mail()
找到更具体的错误消息。提供SwiftMailer或其他PHP邮件库以获得更好的支持

一些垃圾邮件服务器将您的邮件评级为“垃圾邮件”,用于正文中的URL。不幸的是,除非您有权访问发件人和收件人的邮件服务器日志,否则您很难通过
mail()
找到更具体的错误消息。提供SwiftMailer或其他PHP邮件库以获得更好的支持

使用mail()函数时,需要指定“From”标题。请参阅此文档页,查找“附加标题”参数的注释部分

因此,您的mail()调用将如下所示:


邮件($to,$subject,$body,'From:some)。guy@example.com');

使用mail()函数时,需要指定“发件人”标题。请参阅此文档页,查找“附加标题”参数的注释部分

因此,您的mail()调用将如下所示:


邮件($to,$subject,$body,'From:some)。guy@example.com');

当然你不会收到它,因为现在所有主要的网络邮件都使用反垃圾邮件过滤器,而且你的邮件可能被检测为垃圾邮件。
解决方案是将您的电子邮件精确地指定为$from变量,如果您不指定您的真实电子邮件,您的邮件将被检测为垃圾邮件。

当然您不会收到它,因为现在所有主要的网络邮件都使用反垃圾邮件过滤器,并且您的邮件可能被检测为垃圾邮件。
解决方案是将您的电子邮件精确地指定为$from变量,如果您不指定您的真实电子邮件,您的邮件将被检测为垃圾邮件。

标题完全错误
$\u SERVER['HTTP\u POST']
只是一个计算值的表达式。在这种情况下,表达式将计算为相同的值<代码>邮件()。那么,;价值是什么?这有什么关系?您是通过浏览器还是通过CLI运行此操作?如果SMTP服务器接受邮件,则mail()返回true。这并不意味着邮件已经送达。检查邮件服务器的日志,看看php断开连接后会发生什么情况。您是从命令行运行此操作的吗?如果从命令行运行,
$\u服务器
数组的填充非常稀疏。另外,
HTTP\u HOST
在从命令行运行时没有多大意义,因此假设它不在那里。您好,我没有使用任何命令行界面。只需一个PHP源代码,并从web浏览器调用页面。如果我尝试在电子邮件内容中粘贴$\u SERVER['HTTP\u HOST']值。不再发送电子邮件。我在两台网络主机上进行了测试。标题全错了
$\u SERVER['HTTP\u POST']
只是一个计算值的表达式。在这种情况下,表达式将计算为相同的值<代码>邮件()。那么,;价值是什么?这有什么关系?您是通过浏览器还是通过CLI运行此操作?如果SMTP服务器接受邮件,则mail()返回true。这并不意味着邮件已经送达。检查邮件服务器的日志,看看php断开连接后会发生什么情况。您是从命令行运行此操作的吗?如果从命令行运行,
$\u服务器
数组的填充非常稀疏。另外,
HTTP\u HOST
在从命令行运行时没有多大意义,因此假设它不在那里。您好,我没有使用任何命令行界面。只需一个PHP源代码,并从web浏览器调用页面。如果我尝试在电子邮件内容中粘贴$\u SERVER['HTTP\u HOST']值。不再发送电子邮件。我在2台web主机上进行了测试。问题是无论是否包含源代码,代码都能正常工作。问题在于$_服务器['HTTP_HOST'];然后,我的建议是将这两行放在脚本的第一行(就在“无论是否包含源代码,代码都能正常工作。问题在于$\u服务器['HTTP\u HOST']”上);然后我的建议是将这两行放在脚本的第一行(就在”
$server = $_SERVER['HTTP_HOST'];