debian 9 上 js + php 的 Sendmail 问题

我在用我的 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 在我的命令行服务器上运行测试,我收到邮件没有问题。我认为我的代码或我的配置服务器有问题。


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


HUH函数
浏览 175回答 1
1回答

开满天机

提供 JSON POST with PHP 链接。我这样解决我的问题:<?php&nbsp; $data = json_decode(file_get_contents('php://input'), true);&nbsp; if (!empty($data))&nbsp; {&nbsp; &nbsp; &nbsp; $to = 'contact@ag-dev.fr';&nbsp; &nbsp; &nbsp; $from = $data['email'];&nbsp; &nbsp; &nbsp; $subject = utf8_decode($data['subject']);&nbsp; &nbsp; &nbsp; $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);&nbsp; &nbsp; &nbsp; $headers&nbsp; = 'MIME-Version: 1.0\r\n';&nbsp; &nbsp; &nbsp; $headers .= 'Content-type: text/html; charset=utf-8\r\n';&nbsp; &nbsp; &nbsp; $headers .= 'To: Guyomar Alexis <contact@ag-dev.fr>\r\n';&nbsp; &nbsp; &nbsp; $headers .= 'From: ' . ' <' . $from . '>\r\n';&nbsp; &nbsp; &nbsp; mail($to,$subject,$message,$headers);&nbsp; }?>现在一切都运行良好。
打开App,查看更多内容
随时随地看视频慕课网APP