What are the advantages of using phpMailer over the mail() function in PHP for sending emails?

Using phpMailer over the mail() function in PHP for sending emails offers several advantages such as better support for attachments, HTML emails, SMTP authentication, and error handling. phpMailer is also easier to use and provides more flexibility in customizing email headers and content.

<?php
require 'PHPMailer/PHPMailer.php';
require 'PHPMailer/SMTP.php';

$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->SMTPAuth = true;
$mail->Username = 'your@example.com';
$mail->Password = 'your_password';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

$mail->setFrom('from@example.com', 'Your Name');
$mail->addAddress('recipient@example.com', 'Recipient Name');
$mail->Subject = 'Subject of the Email';
$mail->isHTML(true);
$mail->Body = '<h1>Hello, this is a test email!</h1>';

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}
?>