1

何らかの理由で CodeIgniter が SMTP サーバーに接続していません。

$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.netregistry.com.au';
$config['smtp_port'] = '465';

PHP エラーが発生しました

重大度: 警告

メッセージ: fsockopen(): smtp.netregistry.com.au:465 に接続できません (php_network_getaddresses: getaddrinfo に失敗しました: 名前またはサービスが不明です)

ファイル名: libraries/Email.php

ライン番号: 1689

SSL または非 SSL ポートを使用する必要がありますか? (私は両方を試しました;サイコロはありません)

CI に SSL を使用するかどうかを明示的に伝える方法はありますか?

ここで明らかに間違ったことをしていますか?

ありがとう

4

4 に答える 4

1

SMTP サーバーは実際には正しくありませんでした。

于 2012-05-25T05:39:43.070 に答える
0

ホストアドレスに ssl: を入れてみてください:

$config['smtp_host'] = 'ssl://smtp.netregistry.com.au';
$config['smtp_port'] = '465';

多くの場合、smtp ホストには、この種の使用を防ぐためのセキュリティが設定されています。Gmailアカウントを使用してみましたか? それは私にとってはうまくいきます、これが私がそれを使用する方法です:

function send_email($attributes) {

    $this->load->library('email');

    $this->email->set_newline("\r\n");

    $config['protocol'] = 'smtp';
    $config['smtp_host'] = 'ssl://smtp.googlemail.com';
    $config['smtp_port'] = '465';
    $config['smtp_user'] = 'xxx@gmail.com';
    $config['smtp_from_name'] = 'FROM NAME';
    $config['smtp_pass'] = 'XXX';
    $config['wordwrap'] = TRUE;
    $config['newline'] = "\r\n";
    $config['mailtype'] = 'html';                       

    $this->email->initialize($config);

    $this->email->from($config['smtp_user'], $config['smtp_from_name']);
    $this->email->to($attributes['to']);
    $this->email->cc($attributes['cc']);
    $this->email->bcc($attributes['cc']);
    $this->email->subject($attributes['subject']);

    $this->email->message($attributes['message']);

    if($this->email->send()) {
        return true;        
    } else {
        return false;
    }       

}

于 2012-05-25T07:54:28.603 に答える
0

エラーから、「getaddrinfo が失敗しました: 名前またはサービスが不明です」と表示されました。
そして、関数php_network_getaddressesはエラーを発生させます。

これは、SMTP サーバーが会社のゲートウェイの背後にあるか、プライベート サーバーであることを意味している可能性があります。

そのため、 fsockopen() が SMTP サーバーを見つけられないようです。

あなたの会社でコードをもう一度実行してみてください。そうすればうまくいくはずです。

于 2012-05-25T05:36:30.417 に答える