当前位置: 首页 > 知识库问答 >
问题:

不从php mail()函数接收电子邮件[重复]

赖绪
2023-03-14

我最近一直在学习HTML、js、CSS和PHP,方法是创建web页面,并将它们发布在raspberry pi上的apache2服务器上,地址是no-ip.com。我学习PHP的第一个实际项目是创建一个简单的表单,然后向我发送电子邮件,但我不断遇到mail()函数执行时没有任何错误,但实际上并没有发送电子邮件的问题。

表格如下:

<form class="" action="/FormTesting/sendMail.php" method="post">
  Name:<br><input type="text" name="name" value="" required><br>
  Email:<br><input type="text" name="email" value="" required><br>
  Message:<br><textarea name="message" rows="8" cols="80" required></textarea><br>
  Subject:
  <input type="radio" name="subject" value="Hello!">Hello!
  <input type="radio" name="subject" value="Whats up">Whats Up!<br>
  <input type="submit" name="submit" value="Submit">
</form>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
  $to = "myExampleEmail@gmail.com";
  $name = $_POST["name"];
  $email = $_POST["email"];
  $message = $_POST["message"];
  $subject = $_POST["subject"];

  echo $name;
  echo $email;
  echo $message;
  echo $subject;

  $headers = array("From: " . $email,
"Reply-To: " . $to,
"X-Mailer: PHP/" . PHP_VERSION);

  mail($to, $subject, $message, $header);

} else {
  echo $_SERVER["REQUEST_METHOD"];
}
?>

我理解这个问题以前已经问过了,并且尝试了其他答案所阐述的大部分方法,但似乎仍然无法使PHP mail()函数工作。我所拥有的最好的信息是,我必须在服务器本身上进行某种安装或格式化,以允许发送电子邮件,但我还没有找到它的详细文档和/或解释。(即phpmailer?-但还是...怎么做?)

编辑:

我检查了mail函数的返回值。..

  if(mail("myExampleEmail@gmail.com", "subject", "message", $headers)) {
    echo "TRUE";
  }else {
    echo "FALSE";
  } 

编辑:

很明显,我说我在发这个问题之前做了研究,但我并不清楚。我尝试了所有被给出的答案,我的问题是一个关闭的“副本”,因此我问,无论如何,这个问题。

共有1个答案

顾琛
2023-03-14

我尝试了同样的脚本,并收到了电子邮件。但是,它去了垃圾邮件文件夹。页眉应该有更多的详细信息。您可以检查邮件函数返回代码,以确保函数成功。以下是最佳实践。

            $boundary = "==MP_Bound_xyccr948x==";
        $headers = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: multipart/alternative; boundary=\"$boundary\"\r\n";
        $headers .= "From: OrganizationName <webmaster@mycompany.com>\r\n";
        $headers .= "Return-path: webmaster@mycompany.com\r\n";


        $message = "This is a Multipart Message in MIME format\n";
        $message .= "--$boundary\n";
        $message .= "Content-Type: text/plain; charset=\"utf-8\"\n";
        $message .= "Content-Transfer-Encoding: 7bit\n\n";
        $message .= $user_entered_message . "\n";
        $message .= "--$boundary--";
        $mailsent = mail($to, $subject, $message, $headers, "-fbounces@mycompany.com");

        if ($mailsent) 
        {
         confirmation_msg();
        } 
        else 
        {
         email_error_msg();
        }
 类似资料:
  • 我正在使用一个1&1托管服务器上的基本脚本: 但是由于某些原因,我没有收到任何电子邮件,也没有任何错误,因为PHP mail()函数没有发送电子邮件指令。 我认为这可能是一个服务器问题,但1&1声明它是完全支持的。我也从这个服务器/主机发送电子邮件之前使用的只是一个收件人,主题和主体,所以我相当不确定为什么它现在不工作! ..起作用了,所以使用标题似乎是个问题?

  • 问题内容: 我看到很多Node.js模块通过SMTP发送邮件。 但是是否有接收邮件的模块? 问题答案: 您正在寻找一个电子邮件客户端库。目前,有2个选项(如提到这里): 节点imap(IMAP) n3(POP3,实验性) 我以前从未使用过它们,但是用法非常简单(根据文档)。 node-imap 似乎是更稳定的库,并且已针对gmail进行了测试。如果您的环境中可以选择使用IMAP,那么我会坚持使用

  • 我正试图通过一个Jenkins脚本管道,借助ext电子邮件插件发送电子邮件。 我已经用默认收件人配置了插件。 这是我的管道: 我试图将电子邮件发送给触发作业的用户,但没有收到发送给默认收件人的电子邮件。我还尝试了。 我得到了这个错误:

  • 我试着设置一封电子邮件。html和一个动作。php,以便有人可以从网站发送电子邮件。这是电子邮件中的代码。html 在行动中。我有 在电子邮件中输入的信息。html已成功加载到操作中。php,但我的Outlook收件箱中没有收到来自电子邮件方法的任何内容。我错过什么了吗?

  • 我一直在尝试设置AWS简单电子邮件服务,作为一种将收到的电子邮件转发到我的自定义域到我的Gmail帐户的方式,而不需要任何电子邮件托管服务。 我已经设置并验证了我的自定义域(mycustomdomain.com),还验证了它们将转发到的电子邮件地址(myemail@gmail.com)因为我仍然处于沙箱模式。 在电子邮件接收下- 没有指定收件人,我认为这应该允许为我的自定义域下的所有收件人触发此规