I have been fighting with this for a few hours now and finally cracked it. If you have any special characters in your Zoho mail password you cannot use SMTP auth built in to Prestashop 1.6, so forget about it. To get around this you will need to use postfix installed on your host machine and configure it as a relay with auth to Zoho.
Here’s my main.cf:
cat main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_auth_only=no
smtpd_sasl_auth_enable=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_sasl_password_maps = hash:/etc/postfix/relay_password
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_type = cyrus
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
smtp_tls_security_level = secure
smtp_tls_mandatory_protocols = TLSv1
smtp_tls_mandatory_ciphers = high
smtp_tls_secure_cert_match = nexthop
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = MYDOMAIN.COM
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = http, localhost.localdomain, localhost
relayhost = [smtp.zoho.com]:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
myorigin = /etc/mailname
inet_protocols = ipv4
My /etc/postfix/relay_password:
[smtp.zoho.com]:587 sales@MYDOMAIN.COM:FUNKYPASSWD!!
My /etc/postfix/tls_policy:
smtp.zoho.com encrypt protocols=TLSv1 ciphers=high
[smtp.zoho.com]:587 encrypt protocols=TLSv1 ciphers=high
Now do “postmap /etc/postfix/relay_password” and “postmap /etc/postfix/tls_policy” followed by a quick “postfix reload”.
Hopefully you will now be able to send email from Prestashop.