PHP邮件发送功能实现_PHP使用SMTP发送邮件示例

冰川箭仙
发布: 2025-12-22 23:27:20
原创
545人浏览过
PHP mail()函数依赖本地sendmail易失败,推荐用PHPMailer通过SMTP直连邮箱服务商;需Composer安装、配置授权码与587/465端口,并注意云服务器端口屏蔽及环境变量存储敏感信息。

php邮件发送功能实现_php使用smtp发送邮件示例

PHP 自带的 mail() 函数依赖本地 sendmail 服务,线上环境常因配置缺失或被屏蔽而失败。更可靠的方式是使用 SMTP 协议直连邮件服务商(如 Gmail、QQ 邮箱、163 邮箱或企业邮箱),配合 PHPMailer 等成熟库实现稳定发信。

安装并引入 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';

配置 SMTP 参数(以 QQ 邮箱为例)

QQ 邮箱需开启 SMTP 并获取授权码(非登录密码),端口通常为 587(TLS)或 465(SSL):

  • SMTP 服务器:smtp.qq.com
  • 端口:587(推荐 TLS)或 465(SSL)
  • 用户名:完整邮箱地址(如 user@qq.com)
  • 密码:QQ 邮箱设置中生成的“SMTP 授权码”
  • 发件人名称:可自定义,如 “技术支持”

发送邮件的最小可用代码

以下是一个简洁、带错误提示的发送示例:

立即学习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}";
}
登录后复制

常见问题与注意事项

避免踩坑,注意这些细节:

  • 国内云服务器(如阿里云腾讯云)默认屏蔽 25 端口,务必改用 465 或 587
  • Gmail 需开启“两步验证”后生成应用专用密码;163/QQ 邮箱需在网页端手动开启 SMTP 并复制授权码
  • 收件人地址必须调用 addAddress() 显式添加,不能只写在 Body 里
  • 若报错 “Could not connect to SMTP host”,先 telnet 测试端口连通性:telnet smtp.qq.com 587
  • 生产环境建议封装成函数或服务类,敏感配置(账号密码)从环境变量读取

基本上就这些。不复杂但容易忽略授权码和端口限制,配对正确后发送成功率很高。

以上就是PHP邮件发送功能实现_PHP使用SMTP发送邮件示例的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号