What are alternative solutions or tools that can be used to test PHP mail scripts without access to a dedicated mail server?

When testing PHP mail scripts without access to a dedicated mail server, one alternative solution is to use a local development environment that mimics a mail server, such as MailCatcher or MailHog. These tools allow you to catch and view outgoing emails without actually sending them to real recipients. Another option is to use a library or package like PHPMailer or Swift Mailer, which provide built-in methods for testing email functionality without sending actual emails.

// Example using PHPMailer to test PHP mail scripts without sending real emails
require 'vendor/autoload.php';

// Instantiate the PHPMailer class
$mail = new PHPMailer\PHPMailer\PHPMailer();

// Set mail parameters
$mail->isSMTP();
$mail->Host = 'localhost';
$mail->Port = 1025; // Port used by MailCatcher or MailHog
$mail->SMTPDebug = 2; // Enable verbose debugging output

// Set email content
$mail->setFrom('from@example.com', 'Your Name');
$mail->addAddress('recipient@example.com', 'Recipient Name');
$mail->Subject = 'Testing PHP mail script';
$mail->Body = 'This is a test email sent using PHP mail script.';

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