使用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 邮箱为例(其他邮箱类似):
立即学习“PHP免费学习笔记(深入)”;
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 = '<h1>这是一封测试邮件</h1>';
$mail->AltBody = '纯文本内容:这是一封测试邮件';
$mail->send();
echo '邮件发送成功';
} catch (Exception $e) {
echo "邮件发送失败: {$mail->ErrorInfo}";
}
注意:
凹凸工坊-AI手写模拟器 AI手写模拟器,一键生成手写文稿
500 查看详情
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如何实现邮件发送功能_phpmailer配置smtp与附件添加步骤的详细内容,更多请关注php中文网其它相关文章!



