Codeigniter未连接到我的SMTP服务器

时间:2012-05-25 05:26:49

标签: php email codeigniter smtp

由于某种原因,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 个答案:

答案 0 :(得分:0)

从错误中,它说“getaddrinfo失败:姓名或服务未知” 函数php_network_getaddresses会发现错误。

这可能意味着您的SMTP服务器位于公司网关之后,或者是私人服务器。

因此,导致fsockopen()似乎找不到您的SMTP服务器。

尝试在公司中再次运行您的代码,这应该可以正常运行。

答案 1 :(得分:0)

smtp服务器实际上是错误的。

答案 2 :(得分: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;
    }       

}

答案 3 :(得分:0)

会有system/libraries/Email.php个文件。 默认端口将是25。请将smtp_host添加为localhost,就像这样..

var $smtp_host      = "localhost";       
var $smtp_port      = "25";