Setting up the mail configuration in October CMS is a quick progress. Depending on which mail method you use there are up to eight fields to complete:
- Sender name;
- Sender email;
- Mail method: (PHP mail, Sendmail, SMTP, etc...). I elected to go with SMTP;
- SMTP address - such as smtp.your-domain.com or mail.your-domain.com;
- SMTP port - 587;
- SMTP encryption protocol - TLS or SSL;
- Authorization required - boolean response;
- Username - email account; and
- Password - respective email password
In configuring these variables, I was hopeful that the connection would be seamless. But no it wouldn't be so simple!
Errors
SSL operation failed with code 1
stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
To resolve this error, you need to edit you mail.php file in the config directory. Open the file using vi command
vi config/mail.php
Scroll to the bottom where that last batch of lines are:
/* |-------------------------------------------------------------------------- | Sendmail System Path |-------------------------------------------------------------------------- | | When using the "sendmail" driver to send e-mails, we will need to know | the path to where Sendmail lives on this server. A default path has | been provided here, which will work well on most of your systems. | */ 'sendmail' => '/usr/sbin/sendmail -bs', ];
After the 'sendmail' => '/usr/sbin/sendmail -bs', add the following
'stream' => [ 'ssl' => [ 'allow_self_signed' => true, 'verify_peer' => false, 'verify_peer_name' => false, ], ],
So it now becomes
/* |-------------------------------------------------------------------------- | Sendmail System Path |-------------------------------------------------------------------------- | | When using the "sendmail" driver to send e-mails, we will need to know | the path to where Sendmail lives on this server. A default path has | been provided here, which will work well on most of your systems. | */ 'sendmail' => '/usr/sbin/sendmail -bs', 'stream' => [ 'ssl' => [ 'allow_self_signed' => true, 'verify_peer' => false, 'verify_peer_name' => false, ], ], ];
Save using esc:wq! command
Go back to your October CMS backend and test the mail function again. If like us, your mail will be working correctly now.
Wrong mail server configuration
Connection could not be established with host smtp.your-domain.com :stream_socket_client(): php_network_getaddresses: getaddrinfo failed: Name or service not known
If the SMTP address is incorrect you will receive the above error. In this instance I attempt tried smtp.your-domain.com. While this failed, at least I knew how come. In my situation, I tested
- your-domain.com
- smtp.your-domain.com
- mail.your-domain.com
mail.your-domain.com was the only successful SMTP. Which was a little surprising as the email clients SMTP server had been configured to your-domain.com.
Wrong encryption protocol
Connection could not be established with host your-domain.com :stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
In this instance I tested changing the SMTP encryption protocol from TLS to SSL. In doing so, the error above came to live. Switching back to TLS and the error had gone. Note that on the server I had also set up TLS.