[php] PHP에서 ZIP 파일을 생성한 후 이메일로 전송하기

이 글에서는 PHP를 사용하여 파일들을 ZIP으로 압축하고, 이메일을 통해 생성된 ZIP 파일을 전송하는 방법에 대해 설명합니다.

ZIP 파일 생성하기

PHP에는 ZipArchive 클래스를 사용하여 파일을 ZIP으로 압축할 수 있습니다.

아래의 예제는 ZipArchive를 사용하여 파일들을 ZIP으로 압축하는 간단한 방법을 보여줍니다.

$zip = new ZipArchive();
$zipFileName = 'compressed.zip';
if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE) {
    $fileToCompress = 'file_to_compress.txt';
    $zip->addFile($fileToCompress);
    $zip->close();
    echo 'ZIP 파일이 생성되었습니다.';
} else {
    echo 'ZIP 파일을 생성할 수 없습니다.';
}

생성된 ZIP 파일을 이메일로 전송하기

PHP에서는 PHPMailer와 같은 라이브러리를 사용하여 이메일을 보낼 수 있습니다. 예를 들어 PHPMailer를 사용하여 생성된 ZIP 파일을 이메일로 전송하는 방법은 아래와 같습니다.

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

$mail = new PHPMailer(TRUE);
try {
    $mail->setFrom('your_email@example.com', 'Your Name');
    $mail->addAddress('recipient@example.com', 'Recipient Name');
    $mail->addAttachment('compressed.zip', 'compressed.zip');
    $mail->Subject = 'ZIP 파일 전송';
    $mail->Body = '압축된 파일을 확인하세요.';
    $mail->send();
    echo '이메일이 전송되었습니다.';
} catch (Exception $e) {
    echo '이메일 전송에 실패했습니다. 오류: ' . $mail->ErrorInfo;
}

결론

PHP를 사용하여 파일을 ZIP으로 압축하고, 생성된 ZIP 파일을 이메일로 전송하는 방법에 대해 알아보았습니다. 이를 통해 파일을 효과적으로 관리하고, 원격으로 공유하는 데 도움이 될 것입니다.

이 외에도 ZipArchive 클래스와 PHPMailer 라이브러리 외에도 다양한 방법으로 ZIP 파일을 생성하고 전송하는 방법이 있으니, 사용 환경과 요구사항에 맞게 적합한 방법을 선택하시기 바랍니다.

References: