How to pipe an email to a PHP script

In some cases you might need to redirect a given mailbox to a PHP script to handle the incoming messages. This can be easily done with cPanel -> Forwarders tool.

To set up pipe forwarding, you can follow the steps below:

- Log in to your cPanel;

- Click on the Forwarders icon, under the Mail section;

- Click on the Add Forwarder button;

- Fill in Address to Forward and put the mail address you would like to pipe the messages from.

- Click on the Advanced options link and select Pipe to a Program. Then fill in the full path to the script which will handle the messages. Bear in mind that the path is relative to your home directory, so if you create a script/file called pipescript.php placed inside your home/ folder you should fill in only pipescript.php inside the Pipe to a Program field. If the script is situated inside the public_html/ folder you should fill in public_html/pipescript.php

There are several important things you should check regarding the PHP script which is handling the email messages:

  • Ensure the very first line of the script is a hashbang (also called shebang). This is a special line which identifies the file as a PHP script. In most cases it should look like this:

#!/usr/local/php70/bin/php-cli -q

  • Make sure that there are no white spaces or blank lines before the above line as this will be sent to the mail server, which will result in a bounced message. The –q option instructs PHP not to print its version either, since this will also result in a bounced message.
  • Make sure that the script permissions are set correctly. In most cases, you would simply need to change the permissions, either via your cPanel -> File Manager or through an FTP client and set them to 755. This will make the script executable.