Install the PHP mailparse extension
The PHP mailparse extension provides functions for parsing and working with email messages. The extension can parse RFC 822 and RFC 2045 (MIME) compliant messages. Mailparse is stream-based, meaning it does not keep in-memory copies of the files it processes and so is very resource efficient when dealing with large messages.
The mailparse extension supports PHP 5.6+.
Install the mailparse extension
Installing the extension involves the following steps:
- Install build dependencies (packages that are required to build the extension).
- Build the extension’s library file.
- Enable the extension in the PHP configuration.
Install build dependencies
Set environment variables for the package manager.
export DEBIAN_FRONTEND=noninteractive
Install a compiler and other packages that are required for building PHP extensions.
sudo apt-get -y install gcc g++ make autoconf libc-dev pkg-config
Install additional packages that are required to build the mailparse extension.
sudo apt-get -y install re2c
Build the extension
The PECL install
command compiles the extension’s .so
library file.
yes '' | sudo pecl8.4-sp install --nodeps mailparse
yes '' | sudo pecl8.3-sp install --nodeps mailparse
yes '' | sudo pecl8.2-sp install --nodeps mailparse
yes '' | sudo pecl8.1-sp install --nodeps mailparse
yes '' | sudo pecl8.0-sp install --nodeps mailparse
yes '' | sudo pecl7.4-sp install --nodeps mailparse
yes '' | sudo pecl7.3-sp install --nodeps mailparse
yes '' | sudo pecl7.2-sp install --nodeps mailparse-3.0.4
yes '' | sudo pecl7.1-sp install --nodeps mailparse-3.0.4
yes '' | sudo pecl7.0-sp install --nodeps mailparse-3.0.4
yes '' | sudo pecl5.6-sp install --nodeps mailparse-2.1.6
Enable the extension
Configure PHP to load the extension.
sudo bash -c "echo extension=mailparse.so > /etc/php8.4-sp/conf.d/mailparse.ini"
sudo bash -c "echo extension=mailparse.so > /etc/php8.3-sp/conf.d/mailparse.ini"
sudo bash -c "echo extension=mailparse.so > /etc/php8.2-sp/conf.d/mailparse.ini"
sudo bash -c "echo extension=mailparse.so > /etc/php8.1-sp/conf.d/mailparse.ini"
sudo bash -c "echo extension=mailparse.so > /etc/php8.0-sp/conf.d/mailparse.ini"
sudo bash -c "echo extension=mailparse.so > /etc/php7.4-sp/conf.d/mailparse.ini"
sudo bash -c "echo extension=mailparse.so > /etc/php7.3-sp/conf.d/mailparse.ini"
sudo bash -c "echo extension=mailparse.so > /etc/php7.2-sp/conf.d/mailparse.ini"
sudo bash -c "echo extension=mailparse.so > /etc/php7.1-sp/conf.d/mailparse.ini"
sudo bash -c "echo extension=mailparse.so > /etc/php7.0-sp/conf.d/mailparse.ini"
sudo bash -c "echo extension=mailparse.so > /etc/php5.6-sp/conf.d/mailparse.ini"
Restart PHP-FPM.
sudo service php8.4-fpm-sp restart
sudo service php8.3-fpm-sp restart
sudo service php8.2-fpm-sp restart
sudo service php8.1-fpm-sp restart
sudo service php8.0-fpm-sp restart
sudo service php7.4-fpm-sp restart
sudo service php7.3-fpm-sp restart
sudo service php7.2-fpm-sp restart
sudo service php7.1-fpm-sp restart
sudo service php7.0-fpm-sp restart
sudo service php5.6-fpm-sp restart
Verify the extension is enabled in PHP.
php8.4-sp -i | grep mailparse
php8.3-sp -i | grep mailparse
php8.2-sp -i | grep mailparse
php8.1-sp -i | grep mailparse
php8.0-sp -i | grep mailparse
php7.4-sp -i | grep mailparse
php7.3-sp -i | grep mailparse
php7.2-sp -i | grep mailparse
php7.1-sp -i | grep mailparse
php7.0-sp -i | grep mailparse
php5.6-sp -i | grep mailparse
If the extension is enabled, you will see output like the following.
/etc/phpX.Y-sp/conf.d/mailparse.ini,mailparsemailparse support => enabledmailparse.def_charset => us-ascii => us-ascii
Uninstall the mailparse extension
Uninstalling the extension involves the following steps:
- Disable the extension in the PHP configuration.
- Remove the extension’s library file.
Disable the extension
Remove the extension’s configuration from PHP.
sudo rm /etc/php8.4-sp/conf.d/mailparse.ini
sudo rm /etc/php8.3-sp/conf.d/mailparse.ini
sudo rm /etc/php8.2-sp/conf.d/mailparse.ini
sudo rm /etc/php8.1-sp/conf.d/mailparse.ini
sudo rm /etc/php8.0-sp/conf.d/mailparse.ini
sudo rm /etc/php7.4-sp/conf.d/mailparse.ini
sudo rm /etc/php7.3-sp/conf.d/mailparse.ini
sudo rm /etc/php7.2-sp/conf.d/mailparse.ini
sudo rm /etc/php7.1-sp/conf.d/mailparse.ini
sudo rm /etc/php7.0-sp/conf.d/mailparse.ini
sudo rm /etc/php5.6-sp/conf.d/mailparse.ini
Restart PHP-FPM.
sudo service php8.4-fpm-sp restart
sudo service php8.3-fpm-sp restart
sudo service php8.2-fpm-sp restart
sudo service php8.1-fpm-sp restart
sudo service php8.0-fpm-sp restart
sudo service php7.4-fpm-sp restart
sudo service php7.3-fpm-sp restart
sudo service php7.2-fpm-sp restart
sudo service php7.1-fpm-sp restart
sudo service php7.0-fpm-sp restart
sudo service php5.6-fpm-sp restart
Remove the extension
The PECL uninstall
command removes the extension’s .so
library file.
sudo pecl8.4-sp uninstall mailparse
sudo pecl8.3-sp uninstall mailparse
sudo pecl8.2-sp uninstall mailparse
sudo pecl8.1-sp uninstall mailparse
sudo pecl8.0-sp uninstall mailparse
sudo pecl7.4-sp uninstall mailparse
sudo pecl7.3-sp uninstall mailparse
sudo pecl7.2-sp uninstall mailparse
sudo pecl7.1-sp uninstall mailparse
sudo pecl7.0-sp uninstall mailparse
sudo pecl5.6-sp uninstall mailparse