📜  PHP |用电子邮件发送附件(1)

📅  最后修改于: 2023-12-03 14:45:21.360000             🧑  作者: Mango

PHP | 用电子邮件发送附件

有时候,我们需要通过电子邮件发送一些附件,如照片、文档等等。PHP 提供了一个非常便捷的方式来实现这个功能。在本篇文章中,我们将学习如何用 PHP 发送电子邮件并附带附件。

准备工作

在编写代码之前,我们需要确保以下条件已满足:

  • 你的 PHP 环境已经正确配置,可以发送邮件。
  • 你已经知道了 SMTP 服务器的地址和端口号等信息,以便正确连接服务器并发送邮件。
  • 你已经准备好了需要发送的附件,且保存在服务器上的路径已经确定。
编写代码
  1. 连接 SMTP 服务器

首先,我们需要使用 PHPMailer 类来发送邮件。使用前,需要先安装 PHPMailer。可以使用 Composer 安装,也可以从官网下载 ZIP 文件并解压。在这里假设你已经下载并解压好了 PHPMailer。

注意:使用 PHPMailer 需要开启 OpenSSL 扩展,请确保已开启。

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

$mail = new PHPMailer(TRUE);

// SMTP 服务器地址和端口号
$mail->Host = 'smtp.example.com';
$mail->Port = 587;

// SMTP 身份验证
$mail->SMTPAuth = TRUE;

// SMTP 账号和密码
$mail->Username = 'your-email@example.com';
$mail->Password = 'your-password';
  1. 设置邮件内容

接下来,我们需要设置邮件的内容,包括收件人、发件人、主题、邮件内容等等。在这里假设你已经设置好了这些内容,具体实现可以参考 PHPMailer 文档。

  1. 添加附件

最后一步,我们需要添加附件。使用 PHPMailer,可以通过 $mail->addAttachment($path, $name) 方法来添加附件。其中,$path 表示附件在服务器上的路径,$name 表示附件的名称,可选参数。

以下是示例代码:

// 添加附件
$attachment_path = '/path/to/attachment.jpg';
$attachment_name = 'attachment.jpg';
$mail->addAttachment($attachment_path, $attachment_name);
完整示例代码

以下是完整的示例代码:

<?php
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\PHPMailer;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

$mail = new PHPMailer(TRUE);

// SMTP 服务器地址和端口号
$mail->Host = 'smtp.example.com';
$mail->Port = 587;

// SMTP 身份验证
$mail->SMTPAuth = TRUE;

// SMTP 账号和密码
$mail->Username = 'your-email@example.com';
$mail->Password = 'your-password';

// 收件人、发件人、主题、邮件内容等等
$mail->setFrom('your-email@example.com', 'Your Name');
$mail->addAddress('recipient@example.com', 'Recipient Name');
$mail->Subject = 'PHPMailer Example';
$mail->msgHTML('This is a message.');

// 添加附件
$attachment_path = '/path/to/attachment.jpg';
$attachment_name = 'attachment.jpg';
$mail->addAttachment($attachment_path, $attachment_name);

// 发送邮件
if ($mail->send()) {
    echo 'Email sent.';
} else {
    echo 'Email failed.';
}
总结

在本篇文章中,我们学习了如何用 PHP 发送电子邮件并附带附件。使用 PHPMailer,可以轻松实现发送邮件的功能。为了保证代码的可读性和可维护性,建议将代码按照上述步骤分段编写。