由于某种原因,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 失败:名称或服务未知)
文件名:库/电子邮件.php
行号:1689
我应该使用 SSL 端口还是非 SSL 端口?(我都试过了;没有骰子)
有没有办法明确告诉CI是否使用SSL?
我在这里做错了什么吗?
谢谢
smtp 服务器实际上不正确。
从错误中,它说"getaddrinfo 失败:名称或服务未知"。
并且该函数php_network_getaddresses
触发错误。
这可能意味着您的SMTP服务器位于公司网关后面,或者是私人服务器。
所以,这导致 fsockopen() 似乎找不到你的 SMTP 服务器。
尝试在您的公司中再次运行您的代码,这应该可以工作。
您可以尝试在主机地址中放入 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;
}
}
将有system/libraries/Email.php
文件。默认端口为 25 .请像这样添加smtp_host作为本地主机。.
var $smtp_host = "localhost";
var $smtp_port = "25";