What are the potential pitfalls of using the mail() function for email sending in PHP?

One potential pitfall of using the mail() function for email sending in PHP is that it can be prone to abuse by spammers if not properly secured. To mitigate this risk, it is recommended to validate user input and sanitize email content before passing it to the mail() function. Additionally, setting proper headers and using additional security measures such as SPF and DKIM can help improve the deliverability of emails and prevent them from being marked as spam.

// Example of sending an email with proper validation and sanitization

$to = "recipient@example.com";
$subject = "Test Email";
$message = "This is a test email.";

// Validate email address
if (filter_var($to, FILTER_VALIDATE_EMAIL)) {
    // Sanitize email content
    $subject = filter_var($subject, FILTER_SANITIZE_STRING);
    $message = filter_var($message, FILTER_SANITIZE_STRING);
    
    // Set additional headers
    $headers = "From: sender@example.com\r\n";
    
    // Send email
    if (mail($to, $subject, $message, $headers)) {
        echo "Email sent successfully.";
    } else {
        echo "Failed to send email.";
    }
} else {
    echo "Invalid email address.";
}