1

この構成で、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(): コード 1 で SSL 操作が失敗しまし た


ポート 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

どんな手掛かり ?

どうもありがとう。

4

1 に答える 1

6

私は近かった:

SparkPost には SSL ではなく TLS が必要です。を使用するには、サーバーの 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";
于 2016-04-06T14:34:58.417 に答える