-
Notifications
You must be signed in to change notification settings - Fork 2k
Description
PHP Version
8.1
CodeIgniter4 Version
4.3.4
CodeIgniter4 Installation Method
Composer (using codeigniter4/appstarter)
Which operating systems have you tested for this bug?
Windows
Which server did you use?
apache
Database
No response
What happened?
The built-in Email library, when specifying the SMTP port as 465, disregards the SMTPCrypto settings, and directly sets the encryption method as tls://, which is incomprehensible to me.
Many email services provide SMTP SSL ports that are designated as 465, but the protocols they offer may only be one of ssl:// and tls://, or one may be stable while the other is not. This choice should ideally be decided by the user.
My current situation is that in Codeigniter3, the smtp_crypto was set to ssl on port 465 and has been running stably. But after upgrading the system to Codeigniter4, I found that the framework forcibly sets tls:// when setting port 465; causing the email failure rate to be as high as 30%.
For now, there's no solution, so I had to temporarily set it to port 25 without specifying SMTPCrypto, and no errors have occurred so far. In the old system, the same SMTP parameters of 465+SSL combination also never caused errors.
The SMTP service I use is from 126.com's email service, and the SMTP server address is smtp.126.com.
Steps to Reproduce
$config['protocol'] = 'smtp';
$config['SMTPHost'] = 'smtp.126.com';
$config['SMTPPort'] = 465;
$config['SMTPCrypto'] = 'ssl';
$config['SMTPUser'] = '***';
$config['SMTPPass'] = '***';
$email->initialize($config);
$email->setFrom('[email protected]', 'Your Name');
$email->setTo('[email protected]');
$email->setSubject('Email Test');
$email->setMessage('Testing the email class.');
$email->send();Expected Output
To send emails steadily and normally.
Anything else?
No response