5

我试图设置一个 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 收件箱中没有通过电子邮件方法收到任何内容。我错过了什么吗?

4

3 回答 3

6

首先检查 的返回值mail以查看您的 SMTP 服务器是否正在接受该邮件。

此外,根据 Namecheap 的文档,您的 From address is invalid

只有托管在我们服务器上的域才能在“发件人”字段中使用。任何不是我们托管的域都不能添加到“发件人”字段。我们必须采取这一措施来防止使用论坛、留言簿和联系表格脚本发送垃圾邮件。为了使您的站点脚本正常工作,您应该将“发件人”字段设置为在您的 cPanel 中创建的电子邮件帐户。

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

于 2013-09-28T19:42:30.537 回答
2

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

当您的邮件真的要发出时,请使用有效的发件人电子邮件,然后您可以从接收邮件服务器收到退回邮件。

不要忘记,有很多反垃圾邮件技术。最重要的是您尊重并了解SPF的工作原理。这是最失败的情况之一,网站不会发送未到达收件人的电子邮件。

于 2013-09-28T20:06:51.297 回答
0

好吧,我用力敲了敲头。只是为了意识到他们正在进入我的“$ to”电子邮件ID的垃圾邮件文件夹。也请在您这边检查一下。

于 2015-03-29T16:46:32.980 回答