Debian 9 上 js + php 的 Sendmail 问题

Sendmail problem with js + php on debian 9

我在使用 VPS 服务器发送邮件时遇到了问题。 我的服务器安装了 PHP 和 sendmail。

我尝试从 HTML 表单发送电子邮件,该表单在 JS 中检查然后在 HTML 中发送,请求启动良好但没有发送任何内容。

我的 JS 代码:

submitMail() {
      const emailValue = document.getElementById('mail').value;
      const subjectValue = document.getElementById('subject').value;
      const messageValue = document.getElementById('text').value;
      const xhr = new XMLHttpRequest();
      xhr.open('POST', 'https://ag-dev.fr/mailform.php', true);
      xhr.setRequestHeader('Content-Type', 'application/json');
      xhr.onreadystatechange = () => {
        if (xhr.readyState === 4 && xhr.status === 200) {
          this.sendComplet();
        }
      };
      xhr.send(JSON.stringify({
        email: emailValue,
        subject: subjectValue,
        message: messageValue,
      }));
    },

我的PHP代码:

<?php
  if (!empty($_POST['message']))
  {
      $to = 'contact@ag-dev.fr';
      $from = $_POST['email'];
      $subject = $_POST['subject'];
      $message = $_POST['message'] . "\n\n\n\n Ceci est un message envoyé depuis le formulaire de contact. Pour répondre à ce mail, envoyez un mail à l'adresse suivante : " . $_POST['email'];
      $headers  = 'MIME-Version: 1.0\r\n';
      $headers .= 'Content-type: text/html; charset=iso-8859-1\r\n';
      $headers .= 'To: Guyomar Alexis <contact@ag-dev.fr>\r\n';
      $headers .= 'From: ' . ' <' . $from . '>\r\n';
      mail($to,$subject,$message,$headers);
  }
?>

我 运行 使用 sendmail 在我的命令行服务器上进行了测试,我收到的邮件没有问题。我认为我的代码或我的配置服务器有问题。

如果有人知道这可能来自哪里......

感谢@ADyson JSON POST 和 PHP link。 我这样解决我的问题:

<?php
  $data = json_decode(file_get_contents('php://input'), true);
  if (!empty($data))
  {
      $to = 'contact@ag-dev.fr';
      $from = $data['email'];
      $subject = utf8_decode($data['subject']);
      $message = utf8_decode($data['message']) . utf8_decode("\n\n\n\n Ceci est un message envoyé depuis le formulaire de contact. Pour répondre à ce mail, envoyez un mail à l'adresse suivante : " . $from);
      $headers  = 'MIME-Version: 1.0\r\n';
      $headers .= 'Content-type: text/html; charset=utf-8\r\n';
      $headers .= 'To: Guyomar Alexis <contact@ag-dev.fr>\r\n';
      $headers .= 'From: ' . ' <' . $from . '>\r\n';
      mail($to,$subject,$message,$headers);
  }
?>

现在都运行好了。