What are some common reasons for email attachments to become corrupted when using PHPMailer?

Email attachments may become corrupted when using PHPMailer due to encoding issues, file size limitations, or incorrect file paths. To solve this issue, ensure that the attachment is properly encoded using base64 encoding, check the file size against any limits set by the email server, and verify that the file path is correct.

// Example code snippet to send an email with an attachment using PHPMailer
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

$mail = new PHPMailer(true);

try {
    $mail->isSMTP();
    $mail->Host = 'smtp.example.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'your@example.com';
    $mail->Password = 'yourpassword';
    $mail->SMTPSecure = 'tls';
    $mail->Port = 587;

    $mail->setFrom('your@example.com', 'Your Name');
    $mail->addAddress('recipient@example.com', 'Recipient Name');

    $mail->isHTML(true);
    $mail->Subject = 'Test Email with Attachment';
    $mail->Body = 'This is a test email with an attachment.';

    // Attach file
    $attachment = 'path/to/file.pdf';
    $mail->addAttachment($attachment, 'File.pdf');

    $mail->send();
    echo 'Email sent successfully';
} catch (Exception $e) {
    echo 'Email could not be sent. Mailer Error: ' . $mail->ErrorInfo;
}