Schedule a Free Consultation

How to compile IMAP with SSL for PHP on OSX – works on MAMP as well

Read Article

This tutorial is an attempt to alleviate the headaches for all those that need to have IMAP with SSL running on OSX 😃

Needed stuff

autoconf
openssl
libxml2
imap2007 install with brew “brew install imap-uw”
OR
download from https://www.mirrorservice.org/sites/ftp.cac.washington.edu/imap/ (the archive without Z at the end ) imap-2007e
To install libxml2, you can use brew: brew install openssl libxml2 mcrypt
To link openssl to libxml2: brew link openssl libxml2 –force
See screenshot below:

installing_openssl_libxm12_mcrypt

Steps

Download map-2007e, unzip and run with terminal
make osx EXTRACFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp” 
it will create a folder c-client and might give a few warning, if it’s not fatal error, go on
use the following commands after running the command and the folder c-client is created
sudo mkdir -p /usr/local/include
sudo cp c-client/*.h /usr/local/include/
sudo mkdir /usr/local/lib
sudo cp c-client/*.c /usr/local/lib/
sudo cp c-client/c-client.a /usr/local/lib/libc-client.a
Now, download the version of PHP you require ( the one you use in MAMP )
– go to /Applications/MAMP/bin/php/<your_php_version> and create the folders /include/php/
– extract the php files there
– open terminal in that folder and run
./configure
cd ext/imap
phpize
./configure --with-imap=/usr/local/imap-2007 --with-kerberos --with-imap-ssl=/usr/
make
if
./configure –with-imap=/usr/local/imap-2007 –with-kerberos –with-imap-ssl=/usr/ fails
TRY
imap-2007f = depends on which one you installed
/Applications/MAMP/bin/php/php5.5.26/bin/php-config path to your php from MAMP for which you need the map with SSL
env LDFLAGS=”-lssl -lcrypto” ./configure –with-imap=/usr/local/imap-2007f –with-kerberos –with-imap-ssl –with-php-config=/Applications/MAMP/bin/php/php5.5.26/bin/php-config
if needed for –with-imap-ssl do –with-imap-ssl=/path_to_folder_that_contains evp.h file

Now pray 🙂 

If your prayers have been answered, go to the extracted php files, go to folder ext/imap/modules/ and copy map.so and map.la to

/Applications/MAMP/bin/php/YOUR_PHP_VERSION/lib/php/extensions/no-debug-non-zts-20100525/
Tutorials that do not work from end to end, but they are worth mentioning as they provided useful information:

This was address further up. Simply swap out:


./configure --with-imap=/usr/local/imap-2007f --with-kerberos --with-imap-ssl

With:


LDFLAGS="-lssl -lcrypto" ./configure --with-imap=/usr/local/imap-2007f --with-kerberos --with-imap-ssl

Relax and enjoy 🙂

Now drop us a line in comments and let us know if you’ve managed to make it work for you or if you still have issues.

Navigate to

Check some other articles we wrote

How a WordPress Support Company Can Help Your Business Thrive
To be blunt, a solid online presence is crucial for success in today’s digital age. It is no surprise here that WordPress is the most popular platform for creating and managing a website. However, running a WordPress website can be challenging and time-consuming, especially if you are not tech-savvy. This is where a WordPress support […]
The Power of WordPress: Building Your Business Website with Ease
You used to need serious tech skills to build a professional website. But with WordPress, creating an online home for your business has never been easier. This wildly popular platform now powers over 43% of all websites—and it’s growing by over 500 new sites daily, compared to just 60-80 on competitor platforms such as Shopify […]
jQuery, determine if an event was triggered by human or by jQuery $.trigger()
jQuery, determine if an event was triggered by human or by jQuery $.trigger()
That moment when you need to add an additional feature if a click was not made by the user but rather by the code: