【问题标题】:How to configure SparkPost SMTP in Codeigniter?如何在 Codeigniter 中配置 SparkPost SMTP?
【发布时间】:2016-07-26 15:41:38
【问题描述】:

我成功地使用 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

有什么线索吗?

非常感谢。

【问题讨论】:

  • 我会说你需要版本 1.2 甚至 v3。检查this q/a。

标签: codeigniter ssl smtp sparkpost


【解决方案1】:

我很接近:

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'] = "\r\n";
$config['newline'] = "\r\n";

【讨论】:

  • 抱歉,这是发票应用吗?从 mandrill 迁移到 sparkpost 时,我遇到了完全相同的问题。上面的修复基本上是我已经拥有的,它仍然无法在这里工作......还有其他技巧吗?
  • 这对我有用:$this->email->set_newline("\r\n");。由于某种原因,设置的配置值不适用。
  • 谢谢!花了几个小时试图调试它,你的解决方案奏效了。
猜你喜欢
  • 1970-01-01
  • 2017-06-17
  • 2023-04-01
  • 2018-01-25
  • 2013-10-14
  • 2018-10-24
  • 1970-01-01
  • 2015-11-07
  • 2011-12-06
相关资源
最近更新 更多