探索 PHP 邮件发送:从基础 SMTP 到附件发送实战

2025-12-10 31阅读

文章最后更新时间:2025年12月11日

邮件发送是 Web 应用的常见功能 —— 如用户注册激活、密码找回、订单通知等。PHP 可通过mail()函数或第三方类库(如 PHPMailer)实现邮件发送,其中 PHPMailer 更稳定、支持 SMTP 和附件,是主流选择。

php.jpg

一、基础实现:用 PHPMailer 发送纯文本邮件

<?php
// 引入PHPMailer类(需先下载引入)
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;

$mail = new PHPMailer(true);
try {
    // 配置SMTP服务器
    $mail->SMTPDebug = SMTP::DEBUG_OFF; // 关闭调试
    $mail->isSMTP();
    $mail->Host = 'smtp.163.com'; // 网易SMTP服务器
    $mail->SMTPAuth = true;
    $mail->Username = 'your_email@163.com'; // 发件人邮箱
    $mail->Password = 'your_auth_code'; // 邮箱授权码
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
    $mail->Port = 465;

    // 设置收件人、发件人
    $mail->setFrom('your_email@163.com', '发件人名称');
    $mail->addAddress('recipient@example.com', '收件人名称');

    // 设置邮件内容
    $mail->isHTML(false); // 纯文本邮件
    $mail->Subject = 'PHP邮件发送测试';
    $mail->Body = '这是一封通过PHPMailer发送的测试邮件!';

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

二、进阶:发送带附件的邮件

<?php
// 接上面的代码,在设置邮件内容后添加:
// 添加附件(本地文件)
$mail->addAttachment('./file.pdf', '测试附件.pdf'); // 第二个参数为附件显示名称
// 发送HTML格式邮件
$mail->isHTML(true);
$mail->Body = '<h1>HTML邮件测试</h1><p>这是<b>HTML格式</b>的邮件内容</p>';
?>

总结

PHP 原生mail()函数依赖服务器配置,稳定性差;PHPMailer 支持 SMTP 协议,适配主流邮箱(QQ、网易、腾讯企业邮等),还能发送 HTML 邮件和附件,是实际开发的首选。使用时需注意邮箱授权码的获取(而非登录密码),避免账号安全风险。
文章版权声明:除非注明,否则均为Dark零点博客原创文章,转载或复制请以超链接形式并注明出处。