Skip to content

Bug: The error occurred when the built-in Email library was forced to switch to TLS while setting port 465 #7520

@skycyclone

Description

@skycyclone

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugVerified issues on the current code behavior or pull requests that will fix themwaiting for infoIssues or pull requests that need further clarification from the author

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions