|
本帖最后由 qbz2004 于 2010-1-11 15:34 编辑
在本地调试好使,但传到服务器上就出现这种问题。
本地环境:Apache
服务器:Windows 2003 Service IIS 6
我想应该是服务器不支持 smtp
服务器也是我们公司的,公司人少,这个事就落到我头上了。
如果真是服务器不支持的话。
帮忙看看最下面的解决方案。
小弟真不敢随便改服务器啊。要是坏了罪就大了。
我的代码:
//获得表单中的邮箱信息
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.gmail.com';
$config['smtp_user'] = 'qbz2004@gmail.com'; //发信人
$config['smtp_pass'] = 'z362020103';//发信人密码
$config['smtp_port'] = '465';
$config['smtp_timeout'] = '5';
$config['newline'] = "\r\n";
$config['crlf'] = "\r\n";
$config['charset'] = "utf-8";
$this->load->library('email');
$this->email->initialize($config);
//发信人,发信人名字
$this->email->from($row->smtp_user, $row->username);
//收信人
$this->email->to($mymail);
//标题
$this->email->subject($row->mail_title);
//内容
$this->email->message($row->mail_text);
if($this->email->send()) {
echo '<script type="text/javascript">alert("发送成功,请查收!");window.history.go(-1);</script>';
}
else {
show_error($this->email->print_debugger());
//echo '<script type="text/javascript">alert("发送失败");window.history.go(-1);</script>';
}
错误信息:
A PHP Error was encountered
Severity: Warning
Message: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?)
Filename: libraries/Email.php
Line Number: 1646
A PHP Error was encountered
Severity: Warning
Message: fwrite(): supplied argument is not a valid stream resource
Filename: libraries/Email.php
Line Number: 1789
A PHP Error was encountered
Severity: Warning
Message: fgets(): supplied argument is not a valid stream resource
Filename: libraries/Email.php
Line Number: 1812
A PHP Error was encountered
Severity: Warning
Message: fwrite(): supplied argument is not a valid stream resource
Filename: libraries/Email.php
Line Number: 1789
网站查到的 解决方案:
Google 的企业邮局不错,可是应用起来真是麻烦. 正常设置不能发送邮件. 研究几个小时后得到办法. 分享一下.
环境 Windows 2003 Service IIS 6:
1.设置PHP 打开php.ini配置文件,找到 ;extension=php_openssl.dll 去掉前面的";"号, 意思就是开启这个openssl扩展. 将php目录下的libeay32.dll,ssleay32.dll ext/php_openssl.dll复制到system32目录下。 重新启动Web服务.
2.设置邮件发送方式: SMTP 服务器:ssl://smtp.gmail.com SMTP 端口:465 SMTP 用户名:你设置的邮局帐号 如 Service@28600.com 成功.
先谢过各位高手了。。
我的代码应该是好用的。如果有正需要这个方面代码的话。可以参考。 |
|