You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP发送邮件?求助调试邮件发送失败问题

问题排查与修复方案

核心错误:mail()函数参数顺序颠倒

PHP内置mail()函数的正确参数顺序是:

mail($to, $subject, $message, $headers)

你的代码里把**邮件内容($message)和邮件头($baslik)**的位置搞反了,这是导致发送失败的主要原因。

其他错误点

  • Content-Type设置错误:你写的text/php是无效的MIME类型,应该改为text/plain(纯文本)或text/html(HTML格式)。
  • 表单存在无效标签:提交按钮后有多余的</a>,需删除以保证HTML结构合法。
  • 缺少邮件主题:当前代码里没有设置邮件主题,mail()的第二个参数应为主题内容。

修复后的完整代码

HTML表单部分

<form action="eposta.php" method="post">
  <table align="center">
    <tr valign="baseline">
      <td></td>
      <td><input type="email" name="eposta" required placeholder="E-Postanız" value="" size="50" /></td>
    </tr>
    <tr valign="baseline">
      <td></td>
      <td><input type="text" name="isim" placeholder="Adınız" value="" size="50" /></td>
    </tr>
    <tr valign="baseline">
      <td></td>
      <td><textarea name="mesaj" required cols="48" rows="5" placeholder="Mesajınız..."></textarea></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">&nbsp;</td>
      <td><input type="submit" value="Gönder" /></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1" />
</form>

PHP处理部分

<?php
if(isset($_POST["eposta"]))
{
    $kime = "test@hotmail.com";
    $subject = "网站留言来自:".$_POST["isim"]; // 添加邮件主题
    $message = $_POST["mesaj"];
    
    // 修正邮件头格式与MIME类型
    $headers = "From: ".$_POST["isim"]." <".$_POST["eposta"].">\r\n";
    $headers .= "Content-type: text/plain; charset=UTF-8\r\n"; // 明确编码避免乱码
    
    // 修正mail()参数顺序
    if (mail($kime, $subject, $message, $headers))
        echo "E-Postanız Gönderildi.";
    else
        echo "E-Postanız gönderilmedi.";
}
?>

额外建议

  • 服务器配置检查:如果修复后仍无法发送,需确认服务器是否开启了邮件服务(如Sendmail、Postfix),或是否允许PHP使用mail()函数。
  • 安全优化:对用户输入的isim、eposta、mesaj进行过滤,比如使用filter_var()验证邮箱,使用htmlspecialchars()防止XSS或邮件头注入。

内容的提问来源于stack exchange,提问作者Massaka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:40:42