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=noninteractiveInstall a compiler and other packages that are required for building PHP extensions.
sudo apt-get -y install gcc g++ make autoconf libc-dev pkg-configInstall additional packages that are required to build the mailparse extension.
sudo apt-get -y install re2cBuild the extension
The PECL install command compiles the extension’s .so library file.
yes '' | sudo pecl8.5-sp install --nodeps mailparseyes '' | sudo pecl8.4-sp install --nodeps mailparseyes '' | sudo pecl8.3-sp install --nodeps mailparseyes '' | sudo pecl8.2-sp install --nodeps mailparseyes '' | sudo pecl8.1-sp install --nodeps mailparseyes '' | sudo pecl8.0-sp install --nodeps mailparseyes '' | sudo pecl7.4-sp install --nodeps mailparseyes '' | sudo pecl7.3-sp install --nodeps mailparseyes '' | sudo pecl7.2-sp install --nodeps mailparse-3.0.4yes '' | sudo pecl7.1-sp install --nodeps mailparse-3.0.4yes '' | sudo pecl7.0-sp install --nodeps mailparse-3.0.4yes '' | sudo pecl5.6-sp install --nodeps mailparse-2.1.6Enable the extension
Configure PHP to load the extension.
sudo bash -c "echo extension=mailparse.so > /etc/php8.5-sp/conf.d/mailparse.ini"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.5-fpm-sp restartsudo service php8.4-fpm-sp restartsudo service php8.3-fpm-sp restartsudo service php8.2-fpm-sp restartsudo service php8.1-fpm-sp restartsudo service php8.0-fpm-sp restartsudo service php7.4-fpm-sp restartsudo service php7.3-fpm-sp restartsudo service php7.2-fpm-sp restartsudo service php7.1-fpm-sp restartsudo service php7.0-fpm-sp restartsudo service php5.6-fpm-sp restartVerify the extension is enabled in PHP.
php8.5-sp -i | grep mailparsephp8.4-sp -i | grep mailparsephp8.3-sp -i | grep mailparsephp8.2-sp -i | grep mailparsephp8.1-sp -i | grep mailparsephp8.0-sp -i | grep mailparsephp7.4-sp -i | grep mailparsephp7.3-sp -i | grep mailparsephp7.2-sp -i | grep mailparsephp7.1-sp -i | grep mailparsephp7.0-sp -i | grep mailparsephp5.6-sp -i | grep mailparseIf 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-asciiUninstall 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.5-sp/conf.d/mailparse.inisudo rm /etc/php8.4-sp/conf.d/mailparse.inisudo rm /etc/php8.3-sp/conf.d/mailparse.inisudo rm /etc/php8.2-sp/conf.d/mailparse.inisudo rm /etc/php8.1-sp/conf.d/mailparse.inisudo rm /etc/php8.0-sp/conf.d/mailparse.inisudo rm /etc/php7.4-sp/conf.d/mailparse.inisudo rm /etc/php7.3-sp/conf.d/mailparse.inisudo rm /etc/php7.2-sp/conf.d/mailparse.inisudo rm /etc/php7.1-sp/conf.d/mailparse.inisudo rm /etc/php7.0-sp/conf.d/mailparse.inisudo rm /etc/php5.6-sp/conf.d/mailparse.iniRestart PHP-FPM.
sudo service php8.5-fpm-sp restartsudo service php8.4-fpm-sp restartsudo service php8.3-fpm-sp restartsudo service php8.2-fpm-sp restartsudo service php8.1-fpm-sp restartsudo service php8.0-fpm-sp restartsudo service php7.4-fpm-sp restartsudo service php7.3-fpm-sp restartsudo service php7.2-fpm-sp restartsudo service php7.1-fpm-sp restartsudo service php7.0-fpm-sp restartsudo service php5.6-fpm-sp restartRemove the extension
The PECL uninstall command removes the extension’s .so library file.
sudo pecl8.5-sp uninstall mailparsesudo pecl8.4-sp uninstall mailparsesudo pecl8.3-sp uninstall mailparsesudo pecl8.2-sp uninstall mailparsesudo pecl8.1-sp uninstall mailparsesudo pecl8.0-sp uninstall mailparsesudo pecl7.4-sp uninstall mailparsesudo pecl7.3-sp uninstall mailparsesudo pecl7.2-sp uninstall mailparsesudo pecl7.1-sp uninstall mailparsesudo pecl7.0-sp uninstall mailparsesudo pecl5.6-sp uninstall mailparse