メール ライブラリを使用して、SMTP を使用してメールを送信します。
私は Mandrill を使用していましたが、すべて正常に動作していました。
現在 SparkPost を使用していますが、イレギュラー エラーが発生しています。CI ライブラリは、ときどき空白のエラーを返します。まったく同じメールが 10 回機能し、1 回失敗する可能性があります。
私の設定:
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.sparkpostmail.com';
$config['smtp_user'] = '****';
$config['smtp_pass'] = '****';
$config['smtp_port'] = '587';
$config['smtp_crypto'] = 'tls';
$config['crlf'] = "\r\n";
$config['newline'] = "\r\n";
$config['useragent'] = "BioCRM";
$config['wordwrap'] = FALSE;
$config['mailtype'] = "html";
$this->email->initialize($config);
ここに私が得るエラーの例がありますprint_debugger()
> Example 1:
> hello:
> The following SMTP error was encountered:
> starttls: 220 2.0.0 smtp.sparkpostmail.com ESMTP ecelerity 4.2.21.55447 r(Core:4.2.21.2) Thu, 09 Jun 2016 05:46:19 +0000
>The following SMTP error was encountered:
>Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.
>Example 2:
>hello: 220 2.0.0 smtp.sparkpostmail.com ESMTP ecelerity 4.2.21.55447 r(Core:4.2.21.2) Wed, 08 Jun 2016 14:08:44 +0000
>The following SMTP error was encountered: 220 2.0.0 smtp.sparkpostmail.com >ESMTP ecelerity 4.2.21.55447 r(Core:4.2.21.2) Wed, 08 Jun 2016 14:08:44 +0000
>
>starttls: 250-momentum4.platform1.us-west-2.aws.cl.messagesystems.com says EHLO to 89.31.151.18:39185
> 250-ENHANCEDSTATUSCODES
> 250-8BITMIME
> 250-AUTH=LOGIN PLAIN
> 250-AUTH LOGIN PLAIN
> 250-PIPELINING
> 250 STARTTLS
> The following SMTP error was encountered: 250-momentum4.platform1.us-west-2.aws.cl.messagesystems.com says EHLO to 89.31.151.18:39185
> 250-ENHANCEDSTATUSCODES
> 250-8BITMIME
> 250-AUTH=LOGIN PLAIN
> 250-AUTH LOGIN PLAIN
> 250-PIPELINING
> 250 STARTTLS
> The following SMTP error was encountered: .0.0 continue
>Example 3:
>hello:
>The following SMTP error was encountered:
>starttls:
>The following SMTP error was encountered:
>The following SMTP error was encountered: .0.0 smtp.sparkpostmail.com ESMTP ecelerity 4.2.21.55447 r(Core:4.2.21.2) Wed, 08 Jun 2016 12:59:08 +0000
Sparkpost でのみこれらのエラーが発生するので、質問したところ、次のような回答がありました。
貼り付けたエラーは、SMTP 変換の通常の部分です。例 1:
「starttls: 220 2.0.0 smtp.sparkpostmail.com ESMTP ecelerity 4.2.21.55447 r(コア:4.2.21.2) 2016 年 6 月 9 日 05:46:19 +0000」</p>
Start TLS は、TLS 接続を受け入れることを人々に知らせるためのバナー広告です。220 は適切なコードであり、受け入れる準備ができていることを意味します。
smtp.sparkpostmail.com は、接続したサーバーのホスト名です。ESMTP は使用されているプロトコルです
。Ecelerity 4.2.21.55447 r(Core:4.2.21.2) は、この接続と SMTP 会話を処理しているサービスの名前とバージョン番号で、接続が確立されたときにブロードキャストされます。(もちろん、タイムスタンプも。)ただし、これはアプリケーションのエラーのようです。「PHP SMTP を使用して電子メールを送信できません。この方法でメールを送信するようにサーバーが設定されていない可能性があります。」</p>
例 2 では、応答は似ていますが、配置が奇妙です。EHLO を複数回送信することはないため、アプリケーションが EHLO を気に入らず、他のステータス コードが送信された後にエラーを報告した可能性があります。「.0.0 continue」は、SMTP 会話の切り捨てられた部分のように見えます。これは、次のようになります。
データ
354 3.0.0 続行します。「\r\n.\r\n」で終了それらはすべて SMTP 会話の標準的な部分であるため、アプリケーションがそれらをエラーとして解釈しているかどうかはわかりません。非常に多くの異なるジャンプがあるため、アプリケーションがタイムアウトしたり、ジャンプ間でパケットがドロップしたりする可能性は確かにあります。会話でドロップされたパケットがあるかどうか (アプリケーションが行を認識しないのはそのため) を確認し、そうでない場合は、アプリケーションが SMTP 会話の一部を認識していない理由を確認します。ありがとうございました。
それはあなたの一人にとって何か意味がありますか?
どうもありがとうございました