I'm trying to use the CodeIgniter Email Class to write a secure SMTP email; either SSL or TLS (preferred). In the past, I've successfully used PHPMailer with Secure Auth and TLS. I believe it was a secure connection. TLS shows up in the email header.
Does CodeIngiters' Email Class support secure SMTP authentication with TLS?
Note, this is not a Gmail question. I'm trying to use it with an MS Exchange Server. I've confirmed the PHPMailer code below functions correctly.
include_once('includes/class.phpmailer.php');
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->Host = 'www.domain.com';
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Port = '25';
$mail->Timeout = '60';
$mail->Username = 'user@domain.com';
$mail->Password = 'password';
$mail->From = 'alerts@domain.com';
$mail->FromName = 'Alerts';
$mail->Subject = 'Test from test email file.';
$mail->IsHTML(true);
$mail->MsgHTML('This is just a test.');
// To
$mail->AddAddress('alerts@domain.com', 'Research');
$result = $mail->Send();
With CodeIgniter I've already extended the Email Class (MY_Email.php). The class is a bit big to post here. But, here's the error I keep getting.
Settings:
array(7) {
["smtp_host"]=> string(26) "tls://www.domain.com"
["smtp_port"]=> string(2) "25"
["smtp_user"]=> string(17) "alerts@domain.com"
["smtp_pass"]=> string(9) "password"
["smtp_to_email"]=> string(26) "user@domain.com"
["smtp_from_email"]=> string(26) "user@domain.com"
["smtp_from_name"]=> string(24) "Test from Application"
}
Error Message:
fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:1408F10B:SSL routines:func(143):reason(267)
Any idea what reason 267 is?
How to diagnose OpenSSL errors:
Look at the error message:
Take the reason code (267) and determine the error:
Now google for
SSL_R_WRONG_VERSION_NUMBER
Read the first hit: http://www.mail-archive.com/openssl-dev@openssl.org/msg02770.html
Conclusion: the smtp-server uses SSLv3_server_method and therefore needs to be fixed to use SSLv23 instead.
Found a solution on the CI forums.
Exchange Email Class Patch http://codeigniter.com/forums/viewthread/158882/
It is initiating TLS after SMTP server has been connected.
Worked for me. Jeff