PHP mail()函数依赖本地sendmail易失败,推荐用PHPMailer通过SMTP直连邮箱服务商;需Composer安装、配置授权码与587/465端口,并注意云服务器端口屏蔽及环境变量存储敏感信息。

PHP 自带的 mail() 函数依赖本地 sendmail 服务,线上环境常因配置缺失或被屏蔽而失败。更可靠的方式是使用 SMTP 协议直连邮件服务商(如 Gmail、QQ 邮箱、163 邮箱或企业邮箱),配合 PHPMailer 等成熟库实现稳定发信。
推荐用 Composer 安装最新版 PHPMailer:
composer require phpmailer/phpmailer
use PHPMailer\PHPMailer\PHPMailer;<br>use PHPMailer\PHPMailer\SMTP;<br>use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
QQ 邮箱需开启 SMTP 并获取授权码(非登录密码),端口通常为 587(TLS)或 465(SSL):
以下是一个简洁、带错误提示的发送示例:
立即学习“PHP免费学习笔记(深入)”;
功能介绍:1. 商品出售包含拍卖模式,一口价模式。2. 全套系统采用淘宝网风格,成熟,简洁大方3. 每个商品支持多张图片上传,可自由设定,满足广大网民的迫切要求4. 商品信息支持 ubb,图文并茂5. 注册用户可参与竞拍,或者拍卖自己的商品6. 拥有会员注册,交易提醒,成交商品确认等邮件发送功能7. 拥有交易双方信用评价的功能,使得交易安全可*,可信度高8. 拥有安全稳定的用户虚拟币平台,可实现商
0
$mail = new PHPMailer(true);
try {
$mail->isSMTP();
$mail->Host = 'smtp.qq.com';
$mail->SMTPAuth = true;
$mail->Username = 'your@qq.com';
$mail->Password = 'your_app_password'; // 授权码,非邮箱密码
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->setFrom('your@qq.com', '技术支持');
$mail->addAddress('to@example.com', '收件人姓名');
$mail->isHTML(true);
$mail->Subject = '测试邮件';
$mail->Body = '<h2>这是一封 HTML 邮件</h2><p>支持样式和链接</p>';
$mail->send();
echo '邮件已发送';
} catch (Exception $e) {
echo "发送失败: {$mail->ErrorInfo}";
}避免踩坑,注意这些细节:
addAddress() 显式添加,不能只写在 Body 里telnet smtp.qq.com 587
基本上就这些。不复杂但容易忽略授权码和端口限制,配对正确后发送成功率很高。
以上就是PHP邮件发送功能实现_PHP使用SMTP发送邮件示例的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号