How to Install PHPMailer Using Composer? PHPMailer is one of the most popular libraries for sending emails from PHP applications. Its ease of use, extensive features, & robust support make it a go-to choice for developers. Installing PHPMailer with Composer ensures that you have the latest stable version and access to its dependencies. In this blog, we’ll walk you through a step-by-step process to install and set up PHPMailer using Composer.
What is Composer?
Composer is a dependency management tool for PHP that allows you to manage libraries & packages within your projects. It simplifies the installation, updating, and autoloading of dependencies, ensuring your project is organized and up to date.
How to Install PHPMailer Using Composer? Step-by-Step Guide
Step 1: Check Prerequisites
Before proceeding, make sure you have the following:
- PHP Installed: PHPMailer requires PHP, & most versions are compatible starting from PHP 5.5. Verify your PHP version by running:
php -v - Composer Installed: Ensure Composer is installed on your system. You can check this by running:
composer -v
If Composer is not installed, visit getcomposer.org and follow the installation instructions for your operating system. - A Web Server or Local Development Environment: While not mandatory for the installation, you’ll need an environment like XAMPP, WAMP, or Laravel Valet to test PHPMailer.
Step 2: Create or Open a PHP Project
If you’re starting from scratch, create a new directory for your project and navigate to it using the terminal or command prompt:
mkdir my-php-project
cd my-php-project
If you’re working on an existing project, navigate to the project’s root directory.
Step 3: Initialize Composer
Run the following command to begin a Composer project. This will create a composer.json folder in your project directory:
composer init
The command will prompt you for details such as the package name, description, author, and minimum stability. You can press Enter to accept defaults or customize as needed.
Step 4: Require PHPMailer
To install PHPMailer, use the composer require command:
composer require phpmailer/phpmailer
This command will download the PHPMailer library and its dependencies into the vendor directory. The composer.json file will also be updated to include PHPMailer as a dependency:
{
“require”: {
“phpmailer/phpmailer”: “^6.7”
}
}
Step 5: Verify Installation
After running the composer require command, verify that PHPMailer has been installed by checking the vendor directory. You should see the following:
- A phpmailer/phpmailer directory inside vendor.
- A vendor/autoload.php file, which handles autoloading of classes.
To confirm the installation, you can list the installed packages with:
composer show
Look for phpmailer/phpmailer in the output.
Step 6: Include PHPMailer in Your PHP Code
To use PHPMailer in your project, include Composer’s autoload file at the beginning of your PHP script:
<?php
require ‘vendor/autoload.php’;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
// Create a new instance of PHPMailer
$mail = new PHPMailer(true);
try {
// Server settings
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Send using SMTP
$mail->Host = ‘smtp.example.com’; // Set the SMTP server
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = ‘[email protected]’; // SMTP username
$mail->Password = ‘your-password’; // SMTP password
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption
$mail->Port = 587; // TCP port to connect to
// Recipients
$mail->setFrom(‘[email protected]’, ‘Mailer’);
$mail->addAddress(‘[email protected]’, ‘User’); // Add a recipient
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = ‘Here is the subject’;
$mail->Body = ‘This is the HTML message body in bold!‘;
$mail->AltBody = ‘This is the plain text for non-HTML mail clients’;
// Send the email
$mail->send();
echo ‘Message has been sent’;
} catch (Exception $e) {
echo “Message could not be sent. Mailer Error: {$mail->ErrorInfo}”;
}
Step 7: Test the Setup
Save the above PHP script to a file (e.g., send_mail.php) and run it in your PHP environment:
php send_mail.php
If configured correctly, the script will send an email to the specified recipient. Ensure you’ve provided valid SMTP credentials and server settings.
Step 8: Manage Dependencies
Composer makes it easy to manage your project’s dependencies. Here are some useful commands:
- Update PHPMailer:
composer update phpmailer/phpmailer - Remove PHPMailer:
composer remove phpmailer/phpmailer - Update All Dependencies:
composer update
Troubleshooting Tips
- Missing Dependencies: If you encounter errors during installation, run:
composer install - SMTP Errors: Double-check your SMTP server settings, username, and password. Enable debug output in PHPMailer for detailed error messages.
- Autoload Issues: Ensure the vendor/autoload.php file is included correctly in your script.
Conclusion
Installing PHPMailer with Composer is a straightforward process that ensures you’re using the latest and most secure version of the library. By following this guide, you’ve not only installed PHPMailer but also set up a basic script to send emails. With Composer managing your dependencies, maintaining your PHP projects becomes much easier.