Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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()方法的电子邮件_Php_Email - Fatal编程技术网

不接收来自PHP mail()方法的电子邮件

不接收来自PHP mail()方法的电子邮件,php,email,Php,Email,我已经尝试设置email.html和action.php,以便有人可以从网站发送电子邮件。下面是email.html中的代码 <form action="./action.php" method="post"> <p>Your Name</p> <p><input type="text" name="name" /></p> <p>Email</p> <p>

我已经尝试设置email.html和action.php,以便有人可以从网站发送电子邮件。下面是email.html中的代码

<form action="./action.php" method="post">
    <p>Your Name</p>
    <p><input type="text" name="name" /></p>
    <p>Email</p>
    <p><input type="text" name="email" /></p>
    <p>Services</p>
    <p><input type="text" name="service" /></p>
    <p>Requests</p>
    <p><textarea rows="8" cols="32" name="comment"></textarea></p>
    <p><input type="submit" value="Send" /></p>
</form>

你的名字

电子邮件

服务

请求

在action.php中,我有

<?php
    $to = "foo@outlook.com";
    $subject = "Test mail";
    $message = "Hello! This is a simple email message.";
    $from = "foo2@gmail.com";
    $headers = "From:" . $from;
    mail($to,$subject,$message,$headers);
    echo "Mail Sent.";
?>


在email.html中输入的信息已成功加载到action.php中,但我的Outlook收件箱中没有收到来自email方法的任何信息。我遗漏了什么吗?

首先检查
邮件的返回值,查看您的SMTP服务器是否接受该邮件

此外,根据Namecheap的文档

只有托管在服务器上的域才能在“发件人”中使用 领域任何未与我们一起托管的域都无法添加到“发件人” 领域我们必须采取这一措施,以防止发送垃圾邮件使用 论坛、留言簿和联系方式脚本。对于您的站点脚本 要正常工作,您应该将“发件人”字段设置为具有 已在您的cPanel中创建


即使您的托管公司允许这样做,您也不应该使用非gmail服务器从@gmail.com发送邮件。它通常会在接收端使用和其他类似的反垃圾邮件措施。

首先检查邮件的结果。 您还应该检查php错误日志文件

当你的邮件真的发出时,使用一封有效的发件人电子邮件,然后你就可以从接收邮件的服务器上得到回复

别忘了,有很多反垃圾邮件技术。 最重要的是,你尊重并知道如何工作。
这是最失败的一个,网站不发送电子邮件,而邮件不会到达收件人处。

嗯,我的头撞得很厉害。。只是为了意识到他们进入了我的“$to”电子邮件id的垃圾邮件文件夹。同时在你这边检查一下。

你盲目地认为电子邮件已经发送了。您需要检查
mail
的返回值以检查它是否实际发送:
if(mail(…){//mail sent}
。主机上是否有像sendmail或PHPMailer这样的活动电子邮件发件人?您的系统上是否安装了SMTP服务器?@AmalMurali,返回值true表示本地SMTP接受。它没有提到送货。谢谢你,这应该是我的下一步行动。我刚刚加入了if/else逻辑,而else正在运行,因此它没有发送。我在namescape上托管这个网站,而且肯定有PHP支持,我可能需要查看设置。如何在我的cPanel中设置“From”字段到电子邮件帐户?