全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

php如何实现邮件发送功能_phpmailer配置smtp与附件添加步骤

使用PHPMailer通过SMTP发送邮件并添加附件,首先通过Composer安装PHPMailer,然后配置SMTP信息如QQ邮箱的smtp.qq.com、端口465、SSL加密,启用SMTPAuth并设置Username和授权码Password,调用setFrom设置发件人,addAddress添加收件人,isHTML启用HTML内容,设置Subject和Body,通过addAttachment添加服务器路径上的附件文件,最后调用send发送邮件,并用try-catch捕获异常以确保稳定运行。

PHP 实现邮件发送功能最常用的方式是使用 PHPMailer,它支持 SMTP 配置、附件添加、HTML 内容等高级功能。下面详细介绍如何配置 PHPMailer 使用 SMTP 发送邮件,并添加附件。

安装 PHPMailer

推荐使用 Composer 安装 PHPMailer:

composer require phpmailer/phpmailer

如果没有使用 Composer,也可以从 GitHub 下载源码并手动引入。

配置 SMTP 发送邮件

以下是一个通过 SMTP 发送邮件的基础示例,以 QQ 邮箱为例(其他邮箱类似):

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
require 'vendor/autoload.php';

$mail = new PHPMailer(true); // 启用异常
try {
    $mail->isSMTP();
    $mail->Host = 'smtp.qq.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'your_email@qq.com';
    $mail->Password = 'your_authorization_code'; // 注意:不是登录密码,是授权码
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
    $mail->Port = 465;

    $mail->setFrom('your_email@qq.com', '发件人名称');
    $mail->addAddress('to@example.com', '收件人');

    $mail->isHTML(true);
    $mail->Subject = '测试邮件标题';
    $mail->Body = '

这是一封测试邮件

';
    $mail->AltBody = '纯文本内容:这是一封测试邮件';

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

注意:

  • QQ 邮箱的 SMTP 服务器 是 smtp.qq.com,端口为 465,加密方式为 SSL(ENCRYPTION_SMTPS)
  • 需要在邮箱设置中开启 POP3/SMTP 服务,并获取授权码作为密码
  • Gmail、163 等邮箱配置略有不同,如 Gmail 使用 TLS 加密,端口 587

添加附件

使用 addAttachment() 方法可以轻松添加附件:

// 添加一个附件
$mail->addAttachment('/path/to/file.pdf');

// 添加带自定义名称的附件
$mail->addAttachment('/path/to/photo.jpg', '我的照片.jpg');

附件路径必须是服务器上的绝对路径或相对路径,且 PHP 有读取权限。

如果要添加多个附件,重复调用 addAttachment 即可:

$mail->addAttachment('./files/doc1.pdf');
$mail->addAttachment('./files/image.png');

常见问题与建议

  • 确保服务器允许外联 SMTP 端口(如 465、587),部分虚拟主机可能屏蔽
  • 使用 try-catch 捕获异常,便于调试错误
  • 避免频繁发送,防止被识别为垃圾邮件
  • 生产环境建议使用更稳定的邮件服务(如 SendGrid、阿里云邮件推送)

基本上就这些,配置正确后,PHPMailer 能稳定实现邮件发送和附件功能。


# php  # word  # html  # git  # composer  # github  # 端口  # qq  # ssl  # 阿里云  # ai  # pdf  # 邮箱  # echo  # require  # mail  # try  # catch  # 发送邮件  # 邮件发送  # 这是  # 一封  # 是一个  # 多个  # 推荐使用  # 如果没有  # 自定义  # 详细介绍 


相关文章: TestNG的testng.xml配置文件怎么写  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  如何选择最佳自助建站系统?快速指南解析优劣  如何通过虚拟主机快速完成网站搭建?  制作农业网站的软件,比较好的农业网站推荐一下?  建站之星Pro快速搭建教程:模板选择与功能配置指南  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  如何有效防御Web建站篡改攻击?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何配置FTP站点权限与安全设置?  香港服务器部署网站为何提示未备案?  如何在万网自助建站中设置域名及备案?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  C++如何编写函数模板?(泛型编程入门)  宁波自助建站系统如何快速打造专业企业网站?  如何在阿里云通过域名搭建网站?  如何注册花生壳免费域名并搭建个人网站?  无锡营销型网站制作公司,无锡网选车牌流程?  如何获取免费开源的自助建站系统源码?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  实例解析angularjs的filter过滤器  Thinkphp 中 distinct 的用法解析  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  制作公司内部网站有哪些,内网如何建网站?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  php json中文编码为null的解决办法  如何通过VPS建站实现广告与增值服务盈利?  IOS倒计时设置UIButton标题title的抖动问题  智能起名网站制作软件有哪些,制作logo的软件?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  安云自助建站系统如何快速提升SEO排名?  建站主机服务器选购指南:轻量应用与VPS配置解析  建站之星如何助力网站排名飙升?揭秘高效技巧  建站之星在线客服如何快速接入解答?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  如何制作网站标识牌,动态网站如何制作(教程)?  如何选择CMS系统实现快速建站与SEO优化?  如何在IIS中配置站点IP、端口及主机头?  如何快速打造个性化非模板自助建站?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  广东企业建站网站优化与SEO营销核心策略指南  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  高防服务器租用如何选择配置与防御等级?  C++时间戳转换成日期时间的步骤和示例代码  如何通过FTP空间快速搭建安全高效网站?  建站之星代理平台如何选择最佳方案? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。