I'm having issues in sending mail through SMTP Protocol.
Welcome.php
$this->load->library('email');
$config = array();
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.zoho.com';
$config['smtp_user'] = '[email protected]';
$config['smtp_pass'] = '**************';
$config['smtp_port'] = 465;
$config["smtp_crypto"] = "ssl";
$this->email->initialize($config);
$this->email->set_newline("\r\n");
$this->email->from('[email protected]', 'Support name'); // change it to yours
$this->email->to($to);// change it to yours
$this->email->subject($subject);
$this->email->message($message);
if($this->email->send())
{
echo "Success! - An email has been sent to ".$to;
}
else
{
show_error($this->email->print_debugger());
return false;
}
}
Here is the output error:
An Error Was Encountered
220 mx.zohomail.com SMTP Server ready June 29, 2018 5:16:40 AM PDT
hello:
The following SMTP error was encountered:
Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.
Date: Fri, 29 Jun 2018 12:16:40 +0000
From: "Support Name" <[email protected]>
Return-Path: <[email protected]>
To: [email protected]
Subject: =?ISO-8859-1?Q?=43=6F=70=79=20=61=6C=6C=20=74=68=65?=
Reply-To: <[email protected]>
User-Agent: CodeIgniter
X-Sender: [email protected]
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <[email protected]>
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="B_ALT_5b3623284061c"
This is a multi-part message in MIME format.
Your email application may not support this format.
--B_ALT_5b3623284061c
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Some
--B_ALT_5b3623284061c
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Some Email Description=0A=0A Some Email Description
--B_ALT_5b3623284061c--
Note: The script is working fine on localhost, as well as multiple other hostings but not working on VPS Hosting.
These are the things to remember:
$config['protocol'] = "smtp";
to $config['protocol'] = "sendmail";
it works. But i want to send mail only through SMTP Protocol. Solution: The problem was fixed! The culprit was Valid Hostname & Reverse DNS.
Detailed info:
Due to misconfiguration, SMTP was responding around 7 - 10 secs
. According to docs, if we don't specify the smtp_timeout
, it will take default which is 5 sec
.
So I changed the smtp_timeout
from default 5 sec
to 10 sec
and it works.
After figuring out what was the problem, found that the SMTP responding slow. There was no valid hostname, Reverse DNS added. So added that. Now it's working as expected. Now I removed the smtp_timeout
field. It's working now.