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 失败:名称或服务未知)

文件名:库/Email.php

行号:1689

我应该使用 SSL 还是非 SSL 端口?(我都试过了;没有骰子)

有没有办法明确告诉 CI 使用 SSL 与否?

我在这里做错了什么吗?

谢谢

4

4 回答 4

1

smtp 服务器实际上是不正确的。

于 2012-05-25T05:39:43.070 回答
0

从错误中,它说“getaddrinfo 失败:名称或服务未知”。
并且该功能php_network_getaddresses会拍摄错误。

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

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

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

于 2012-05-25T05:36:30.417 回答
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

会有system/libraries/Email.php文件。默认端口将是 25 .please 也像这样添加 smtp_host 作为 localhost ..

var $smtp_host      = "localhost";       
var $smtp_port      = "25";      
于 2017-02-03T05:51:02.380 回答