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

PHP邮件发送报错:sendmail_from未配置或From头缺失

解决PHP mail()函数的"sendmail_from未设置"警告

1. 修正邮件头格式

你的代码中$sender = "From : $email";的格式不符合邮件头标准,From和冒号之间的空格会导致识别失败。修改为标准格式,同时添加必要的辅助头字段:

// 修正后的邮件头,用\r\n分隔多个字段
$headers = "From: $email\r\n";
$headers .= "Reply-To: $email\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();

替换原代码中的$sender变量,确保mail()函数能正确识别From头。

2. 配置php.ini默认发件人(可选)

若不想在代码中每次指定From头,可修改php.ini设置全局默认发件人:

  1. 打开XAMPP目录下的php/php.ini(路径:C:\xampp\php\php.ini)
  2. 找到sendmail_from项,去掉开头的分号注释,设置你的邮箱:
sendmail_from = your-default-email@example.com
  1. 重启XAMPP的Apache服务使配置生效。

3. 配置XAMPP的sendmail服务(Windows环境必做)

Windows下XAMPP依赖sendmail组件发送邮件,需正确配置sendmail.ini:

  1. 打开C:\xampp\sendmail\sendmail.ini
  2. 根据你的邮箱服务商填写SMTP信息,以Gmail为例:
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=tls
auth_username=your-gmail@gmail.com
auth_password=your-app-specific-password
force_sender=your-gmail@gmail.com

注:Gmail需要开启两步验证后使用应用专用密码,而非原账号密码。

  1. 重启Apache服务。

修改后的完整代码示例

$reciver = "myemail@gmail.com";
$subject = "Form : $name <$email>";
$body = "Name : $name \n Email : $email \n Phone : $phone \n Website : $website";

$headers = "From: $email\r\n";
$headers .= "Reply-To: $email\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();

if(mail($reciver, $subject, $body, $headers)){
    echo "Message sent successfully!";
} else {
    echo "Failed To Send Your Message !";
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:54:29