为了账号安全,请及时绑定邮箱和手机立即绑定

debian 9 上 js + php 的 Sendmail 问题

debian 9 上 js + php 的 Sendmail 问题

PHP
HUH函数 2023-04-28 17:09:40
我在用我的 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 在我的命令行服务器上运行测试,我收到邮件没有问题。我认为我的代码或我的配置服务器有问题。如果有人知道这可能来自哪里......
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

提供 JSON POST with PHP 链接。我这样解决我的问题:


<?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);

  }

?>

现在一切都运行良好。


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 174 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信