В этом руководстве мы рассмотрим интеграцию двух мощных библиотек PHP: PHP FPDF и PHPMailer. PHP FPDF позволяет нам динамически создавать PDF-документы, а PHPMailer позволяет нам легко отправлять электронные письма. Объединив эти две библиотеки, мы можем создавать PDF-файлы и программно прикреплять их к исходящим электронным письмам. В этой статье представлены различные методы и примеры кода для беспрепятственного выполнения этой интеграции.
Метод 1: создание PDF-файла и его отправка в виде вложения к электронной почте
require 'fpdf.php';
require 'PHPMailer/PHPMailer.php';
require 'PHPMailer/SMTP.php';
// Create a new PDF document using FPDF
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial', 'B', 16);
$pdf->Cell(40, 10, 'Hello World');
// Save the PDF to a file
$pdfFileName = 'example.pdf';
$pdf->Output($pdfFileName, 'F');
// Create a new PHPMailer instance
$mail = new PHPMailer\PHPMailer\PHPMailer();
// Configure PHPMailer settings
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->SMTPAuth = true;
$mail->Username = 'your_email@example.com';
$mail->Password = 'your_password';
$mail->Port = 587;
// Set email details
$mail->setFrom('your_email@example.com', 'Your Name');
$mail->addAddress('recipient@example.com');
$mail->Subject = 'PDF Attachment Example';
$mail->Body = 'Please find the attached PDF document.';
// Attach the PDF to the email
$mail->addAttachment($pdfFileName);
// Send the email
if ($mail->send()) {
echo 'Email sent successfully!';
} else {
echo 'Email could not be sent. Error: ' . $mail->ErrorInfo;
}
Метод 2. Создание PDF-файла, его сохранение и отправка в виде вложения к электронной почте
require 'fpdf.php';
require 'PHPMailer/PHPMailer.php';
require 'PHPMailer/SMTP.php';
// Create a new PDF document using FPDF
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial', 'B', 16);
$pdf->Cell(40, 10, 'Hello World');
// Save the PDF to a variable
$pdfContent = $pdf->Output('', 'S');
// Create a new PHPMailer instance
$mail = new PHPMailer\PHPMailer\PHPMailer();
// Configure PHPMailer settings
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->SMTPAuth = true;
$mail->Username = 'your_email@example.com';
$mail->Password = 'your_password';
$mail->Port = 587;
// Set email details
$mail->setFrom('your_email@example.com', 'Your Name');
$mail->addAddress('recipient@example.com');
$mail->Subject = 'PDF Attachment Example';
$mail->Body = 'Please find the attached PDF document.';
// Attach the PDF to the email
$mail->addStringAttachment($pdfContent, 'example.pdf');
// Send the email
if ($mail->send()) {
echo 'Email sent successfully!';
} else {
echo 'Email could not be sent. Error: ' . $mail->ErrorInfo;
}
В этой статье мы рассмотрели два метода интеграции PHP FPDF с PHPMailer. Используя возможности обеих библиотек, мы можем динамически создавать PDF-документы и прикреплять их к исходящим электронным письмам. Предоставленные примеры кода демонстрируют, как создать PDF-файл, сохранить его в файл или переменную и отправить в виде вложения к электронной почте. Эта интеграция открывает широкий спектр возможностей для автоматизации создания и распространения PDF-файлов по электронной почте.
Не забудьте настроить параметры PHPMailer в соответствии с конфигурацией вашего почтового сервера. Приятного кодирования!