What are common pitfalls to avoid when using the mail() function in PHP to send emails from a form?
One common pitfall to avoid when using the mail() function in PHP to send emails from a form is not properly sanitizing user input, which can lead to email injection attacks. To prevent this, make sure to validate and sanitize any user input before using it in the email headers. Additionally, always use proper headers to prevent your emails from being marked as spam.
// Sanitize user input before using it in the email headers
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
// Set proper headers to prevent emails from being marked as spam
$headers = "From: $name <$email>\r\n";
$headers .= "Reply-To: $email\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
// Send email using mail() function
mail('recipient@example.com', 'Subject', 'Message', $headers);