You have your email server but when you setup new clients or users, you find it tedious to remember all the settings. Or if you want others to use your email server you find it difficult for those users due to many steps it would take to add your email server. Well lucky for you you can keep using your opensource free email server, in my case Zimbra. Once you get autodiscover configured, users just need to type in their email address and password and then the rest will be added automatically!
Overview
- Setup DNS for autodiscover.example.com
- Setup certifcates for autodiscover.example.com
- Configure Nginx with autodiscover certificate and autodiscover z-push module
- Configure Autodiscover module to connect to Z-Push and Email Server (Zimbra)
Requirements
- Ubuntu Packages “z-push-common, z-push-autodiscover, php7.0-xml”
- DNS “autodiscover.example.com”
- Email Server in this case “Zimbra Open Source Edition”
- Z-Push Server (I am running Autodiscover and Z-Push on same server)
Set your DNS for “autodiscover.example.com” to your autodiscover server
Generate certificates for “autodiscover.example.com” and put them into locations defined below.
/etc/ssl/autodiscover.example.com.crt
/etc/ssl/private/autodiscover.example.com.key
Step 1: Install Ubuntu packages
sudo apt-get update
sudo apt-get install z-push-autodiscover php7.0-xml
Step 2: Update Nignx Configuration
server {
server_name autodiscover.example.com;listen 443 ssl; listen [::]:443 ssl; ssl on; ssl_certificate /etc/ssl/autodiscover.example.com.crt; ssl_certificate_key /etc/ssl/private/
autodiscover
.example.com.key; # If you're using PHP-FPM uncomment the following lines. include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param REQUEST_URI $1; fastcgi_param PHP_FLAG "magic_quotes_gpc=off \n register_globals=off \n magic_quotes_runtime=off \n short_open_tag=on"; fastcgi_param PHP_VALUE "post_max_size=20M \n upload_max_filesize=20M \n max_execution_time=3660"; fastcgi_param HTTP_PROXY ""; # Mitigate https://httpoxy.org/ vulnerabilities fastcgi_read_timeout 3660; # Z-Push Ping might run 3600s, but to be safe location ~* /AutoDiscover/AutoDiscover.xml { alias /usr/share/z-push/autodiscover/autodiscover.php; access_log /var/log/nginx/z-push-autodiscover-access.log; error_log /var/log/nginx/z-push-autodiscover-error.log; # Select one of the fastcgi_pass values or adapt to your configuration #fastcgi_pass unix:/var/run/php5-fpm.sock; # for PHP 5.X Debian/Ubuntu fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; # for PHP 7.X Debian/Ubuntu #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; # usually RedHat and its derivatives #fastcgi_pass 127.0.0.1:9000; # default php-fpm config #fastcgi_index autodiscover.php; }
}
Step 3: Configure Autodiscover configuration
sudo nano /usr/share/z-push/autodiscover/config.php
define('ZPUSH_HOST', 'zpush.example.com');
define('USE_FULLEMAIL_FOR_LOGIN', true);
define('BACKEND_PROVIDER', 'BackendZimbra');
Troubleshooting
Ensure you have php-xml & z-push-autodiscover installed
Certificate for autodiscover.example.com
Check /var/log/z-push/z-push.log