What are the best practices for implementing features like email sending, user authentication, and file uploads in PHP for an Intranet project?

Issue: When developing an Intranet project in PHP, it is important to implement features like email sending, user authentication, and file uploads securely and efficiently. Code snippet for email sending in PHP:

// Define the recipient's email address
$to = "recipient@example.com";

// Define the subject of the email
$subject = "Test Email";

// Define the message body
$message = "This is a test email.";

// Define additional headers
$headers = "From: sender@example.com\r\n";

// Send the email
$mailSent = mail($to, $subject, $message, $headers);

if($mailSent) {
    echo "Email sent successfully.";
} else {
    echo "Email sending failed.";
}
```

Code snippet for user authentication in PHP:
```php
// Check if the user is logged in
session_start();

if(isset($_SESSION['user_id'])) {
    // User is authenticated
    echo "User is authenticated.";
} else {
    // Redirect to login page
    header("Location: login.php");
    exit();
}
```

Code snippet for file uploads in PHP:
```php
// Check if a file has been uploaded
if(isset($_FILES['file'])) {
    $file = $_FILES['file'];

    // Define the upload directory
    $uploadDir = "uploads/";

    // Move the uploaded file to the upload directory
    if(move_uploaded_file($file['tmp_name'], $uploadDir . $file['name'])) {
        echo "File uploaded successfully.";
    } else {
        echo "File upload failed.";
    }
}