What are the potential security risks of including authentication data in PHP scripts for SMTP?

Including authentication data in PHP scripts for SMTP can expose sensitive information, such as usernames and passwords, to potential attackers. This can lead to unauthorized access to the SMTP server and potentially compromise the security of the email system. To mitigate this risk, it is recommended to store authentication data in a separate configuration file outside of the web root directory and include it in the PHP script using require or include statements.

// config.php
<?php
define('EMAIL_USERNAME', 'your_email_username');
define('EMAIL_PASSWORD', 'your_email_password');
?>

// send_email.php
<?php
require_once('config.php');

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

$from = EMAIL_USERNAME;

$headers = 'From: ' . $from . "\r\n" .
    'Reply-To: ' . $from . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

if (mail($to, $subject, $message, $headers)) {
    echo 'Email sent successfully';
} else {
    echo 'Email could not be sent';
}
?>