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

使用PHP的mail()函数发送表单内容时连接本地25端口失败如何解决?

( ! ) Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp64\www\projects\monsite\contact.php on line 9

报错原因

本地WAMP集成环境默认没有安装运行SMTP邮件服务,PHP内置mail()函数默认尝试连接本地25端口发送邮件,找不到对应服务就会抛出该警告。

解决方法

方法1:修改php.ini配置调用第三方SMTP服务

  • 打开WAMP的php.ini配置文件:点击WAMP托盘图标→PHP→php.ini
  • 找到[mail function]配置段,参考以下内容修改(以QQ邮箱SMTP为例):
SMTP = smtp.qq.com
smtp_port = 465
sendmail_from = 你的QQ邮箱地址
smtp_crypto = ssl
auth_username = 你的QQ邮箱地址
auth_password = 你的QQ邮箱SMTP授权码(不是邮箱登录密码,需要在QQ邮箱设置→账户页开启SMTP服务后获取)
  • 修改完成后重启WAMP的Apache服务生效
  • 注意:部分第三方邮箱SMTP服务对PHP原生mail()函数兼容性较差,可能出现认证失败问题,更推荐使用方法2

方法2:使用PHPMailer类库发送邮件(更稳定)

PHPMailer不需要修改全局php.ini配置,直接在业务代码中配置SMTP参数即可,兼容性和发送成功率更高。

  • 将PHPMailer类库文件引入到你的项目目录中
  • 参考代码示例:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require '你的项目路径/PHPMailer/src/Exception.php';
require '你的项目路径/PHPMailer/src/PHPMailer.php';
require '你的项目路径/PHPMailer/src/SMTP.php';

$mail = new PHPMailer(true);
try {
    // SMTP服务器配置
    $mail->isSMTP();
    $mail->Host = 'smtp.qq.com';
    $mail->SMTPAuth = true;
    $mail->Username = '你的邮箱地址';
    $mail->Password = '你的SMTP授权码';
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
    $mail->Port = 465;

    // 收发件人设置
    $mail->setFrom('发件人邮箱', '发件人展示名称');
    $mail->addAddress('收件人邮箱', '收件人展示名称');

    // 邮件内容设置
    $mail->isHTML(true);
    $mail->Subject = '表单提交通知';
    $mail->Body    = '用户提交的表单内容:'.var_export($_POST, true);

    $mail->send();
    echo '邮件发送成功';
} catch (Exception $e) {
    echo "邮件发送失败: {$mail->ErrorInfo}";
}
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:57:03