我花了好几个小时尝试从服务器发送CI中的电子邮件。在localhost中,它工作正常。
在 config / email.php 中,我添加了以下内容:
$config['mailtype'] = 'html';
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.gmail.com';
$config['smtp_port'] = 465;
$config['smtp_user'] = 'username@gmail.com';
$config['smtp_pass'] = '*******';
$config['charset'] = 'iso-8859-1';
$config['newline'] = "\r\n";
和 auth.php (我正在使用tank auth)功能发送电子邮件,我添加了这个,
$this->load->library('email');
$this->email->set_newline("\r\n");
我收到的错误是:
A PHP Error was encountered
Severity: Warning
Message: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Connection refused)
Filename: libraries/Email.php
Line Number: 1689
A PHP Error was encountered
Severity: Warning
Message: fwrite() expects parameter 1 to be resource, boolean given
Filename: libraries/Email.php
Line Number: 1846
A PHP Error was encountered
Severity: Warning
Message: fgets() expects parameter 1 to be resource, boolean given
Filename: libraries/Email.php
Line Number: 1869
.....................................................
我在服务器中启用了ssl。我发现很多帖子与之相关,并且跟着他们。但它没有发送电子邮件。
任何人都可以帮我解决这个问题吗?提前谢谢。
答案 0 :(得分:0)
我想你忘了加载配置..
更改
$this->load->library('email');
要
$this->load->library('email', $config);
但是,请查看此博客文章以获取更多信息。 http://www.blog.orionwebtech.net/codeigniter-sending-email-via-smtp-gmail/
您还可以检查SSL已启用 -
您可以在PHP配置中启用SSL。查找php.ini并找到包含以下内容的行:
;extension=php_openssl.dll
取消注释。
extension=php_openssl.dll
希望工作。