如何在Codeigniter中配置SparkPost SMTP



我成功地使用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 14
2015年7月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

有线索吗?

非常感谢。

我很接近:

SparkPost需要TLS而不是SSL。它必须在参数中设置,而不是在服务器url中设置,以便使用STARTTLS。最后,我需要更改默认的换行符值。所以这里有一个好的配置:

$config['mailtype'] = "html";
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.sparkpostmail.com';
$config['smtp_user'] = 'user';
$config['smtp_pass'] = 'password';
$config['smtp_crypto'] = 'tls';
$config['smtp_port'] = '587';
$condig['crlf'] = "rn";
$config['newline'] = "rn";

相关内容

  • 没有找到相关文章

最新更新