2026-03-19 08:10:35
使用 PHPMailer 发送带附件的邮件需完成以下步骤,涵盖安装、配置、发送及调试全流程:

推荐通过 Composer 安装(需提前安装 Composer):
composer require phpmailer/phpmailer若无法使用 Composer,可手动下载源码,解压后将 src/ 目录下的文件放入项目,并引入核心类文件:
require 'path/to/PHPMailer/src/PHPMailer.php';require 'path/to/PHPMailer/src/SMTP.php';require 'path/to/PHPMailer/src/Exception.php';或直接引入自动加载文件(Composer 安装后):
require 'vendor/autoload.php';2. 基础配置与发送流程核心步骤:
示例代码:
use PHPMailerPHPMailerPHPMailer;use PHPMailerPHPMailerException;$mail = new PHPMailer(true); // 启用异常模式try { // SMTP 配置(以 Gmail 为例) $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = 'your@gmail.com'; // 发件邮箱 $mail->Password = 'your-app-password'; // 应用专用密码(非邮箱密码) $mail->SMTPSecure = 'tls'; $mail->Port = 587; // 发件人与收件人 $mail->setFrom('from@example.com', 'Sender Name'); $mail->addAddress('recipient@example.com', 'Recipient Name'); // 邮件内容 $mail->isHTML(true); $mail->Subject = 'Subject Here'; $mail->Body = '<h1>HTML Content</h1><p>This is a test email.</p>'; $mail->AltBody = 'Plain text alternative for non-HTML clients'; // 添加附件(单个) $mail->addAttachment('/path/to/file.pdf', 'new_name.pdf'); // 可指定显示名 // 发送邮件 $mail->send(); echo 'Email sent successfully!';} catch (Exception $e) { echo "Error: {$mail->ErrorInfo}";}3. 添加多个附件多次调用 addAttachment() 方法即可:
$mail->addAttachment('/path/to/file1.pdf');$mail->addAttachment('/path/to/image.jpg', 'photo.jpg'); // 自定义显示名$mail->addAttachment('/path/to/report.xlsx');注意事项:
检查 SMTP 认证是否启用、用户名/密码是否正确。
确认加密方式(TLS/SSL)与端口匹配(如 TLS 通常用 587 端口)。
使用 file_exists() 验证文件路径。
检查附件大小是否超过服务商限制。
服务器未配置 SMTP 或禁用 mail() 函数,建议始终使用 SMTP 方式。
PHPMailer 通过封装 SMTP 协议简化了邮件发送流程,尤其适合处理附件和 HTML 内容。关键点包括:


按此流程操作,即可高效实现带附件的邮件发送功能。