What are the recommended alternatives to using the mail() function in PHP for sending emails, and why is it considered outdated?

The recommended alternatives to using the mail() function in PHP for sending emails are using libraries like PHPMailer or Swift Mailer. These libraries provide more features, better security, and easier configuration compared to the basic mail() function. The mail() function is considered outdated because it lacks important features like proper error handling, authentication, and support for attachments.

// Example using PHPMailer library to send an email
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

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

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

    $mail->isHTML(true);
    $mail->Subject = 'Subject';
    $mail->Body = 'Email body';

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