我成功地使用 Mandrill 从我的 CodeIgniter 站点发送邮件,配置如下:
$config['mailtype'] = "html";
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.mandrillapp.com';
$config['smtp_user'] = 'user';
$config['smtp_pass'] = 'password';
$config['smtp_port'] = '587';
$this->email->initialize($config);
但是 Mandrill 不想做事务性电子邮件,所以我需要迁移到 SparkPost。
以下是他们的指令: https: //support.sparkpost.com/customer/en/portal/articles/1988470-smtp-connection-problems
我试过这个配置:
$config['mailtype'] = "html";
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.sparkpostmail.com';
$config['smtp_user'] = 'user';
$config['smtp_pass'] = 'password';
$config['smtp_port'] = '587';
$this->email->initialize($config);
但是没有邮件发送,没有错误。所以我尝试在主机中添加“tls”:
$config['smtp_host'] = 'tls://smtp.sparkpostmail.com';
我得到这个错误:
消息:fsockopen():SSL 操作失败,代码为 1。OpenSSL 错误消息:
错误:1408F10B:SSL 例程:SSL3_GET_RECORD:错误的版本号
文件名:libraries/Email.php
行号:1950
我在端口 2525 上遇到了同样的错误。
这是我本地 MAMP 服务器上 phpinfo 中的 openssl 部分:
启用 OpenSSL 支持
OpenSSL 库版本 OpenSSL 0.9.8zg 2015 年
7 月 14 日 OpenSSL 标头版本 OpenSSL 0.9.8r 2011 年 2 月 8 日
但是我的 Debian 服务器上出现了同样的错误,使用 phpinfo :
OpenSSL 支持已启用
OpenSSL 库版本 OpenSSL 1.0.1e 2013 年 2 月 11 日
OpenSSL 标头版本 OpenSSL 1.0.1e 2013 年 2 月 11 日
Openssl 默认配置 /usr/lib/ssl/openssl.cnf
有什么线索吗?
非常感谢。