我正在尝试使用 CI 创建一个电子邮件通知系统。问题是我正在使用的系统阻止了gmail。所以,我无法使用gmail SMTP。现在,我必须找出一种使用hotmail或任何其他SMTP服务发送电子邮件的方法。这是我的代码,它适用于gmail,但现在适用于hotmail配置/电子邮件.php:
$config = array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.live.com',
'smtp_port' => 587,
'smtp_user' => 'muttalebr@hotmail.com',
'smtp_pass' => 'XXXXXX',
'charset' => 'utf-8',
'newline' => "rn",
'crlf' => "rn",
'mailtype' => "html",
);
调用电子邮件.php并发送电子邮件的实际函数:
function sends($from,$to,$send,$user){
$link=base_url()."index.php/anonymouscoll/cmembersarea/".$user;
$emailmessage="Hello $to,<br />You have a new Gift from $from.<br />Click on the link:<a href=$link>$link</a> to check your gift.<br /><br /><br />Best Regards<br />Online Communication.";
$this->load->library('email');
$this->email->from('muttalebr@hotmail.com','Gift File');
$this->email->to($send);
$this->email->subject('You have a new Gift');
$this->email->message($emailmessage);
if($this->email->send()){
echo "Email sent";
}
else{
show_error($this->email->print_debugger());
}
每次我调用"发送"函数时,我都会收到以下错误:
Severity: Warning
Message: fsockopen() [function.fsockopen]: SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Filename: libraries/Email.php
Line Number: 1673
and
Severity: Warning
Message: fsockopen() [function.fsockopen]: Failed to enable crypto
Filename: libraries/Email.php
Line Number: 1673
我也试过
'smtp_host' => 'sslv2://smtp.live.com',
但它在我的本地机器上不起作用。我在本地机器上使用 Windows 7 和 Windows Xp 对于我将使用的应用程序[阻止 gmail 的应用程序]。我尝试了 XAMPP 版本 1.8.1 和 WAMPP 版本 2.2
期待您的回复
~穆塔莱姆
由于您未在 php.info 文件中启用 SSL 而导致的错误。所以搜索如何启用它.否则,您可以查看我对以下链接中问题的回答,如下所示。我在做的时候遇到了这个错误,我解决了它。
参考链接
你使用的是哪个版本的 PHP?
在某些版本中,fsockopen ssl中显然存在一个错误:
https://bugs.php.net/bug.php?id=54511