What are alternative methods to using the mail() function in PHP for sending emails reliably?

Using the mail() function in PHP for sending emails can sometimes be unreliable due to server configurations or limitations. An alternative method to reliably send emails is by using a third-party email service provider such as SendGrid, Mailgun, or SMTP. These services provide APIs that can be easily integrated into your PHP code to send emails efficiently and securely.

// Using PHPMailer library with SMTP to send emails reliably

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

require 'vendor/autoload.php'; // Include PHPMailer library

// Instantiating PHPMailer
$mail = new PHPMailer(true);

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

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

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

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