【发布时间】:2016-01-17 16:51:45
【问题描述】:
我在使用 Codeigniter 的电子邮件库通过 google mail SMTP 发送电子邮件时遇到问题。
这是我的控制器的代码:
<?php
class User extends CI_Controller{
function __construct(){
parent::__construct();
$this->load->model('user_model');
}
function forgot_password($user_id){
$data = $this->user_model->get_user_detail($user_id);
if(count($data) == 0){
$response["error"] = TRUE;
$response["error_message"] = "No user data was found";
}else{
$response["error"] = FALSE;
$pass = $data->user_password;
$ci = get_instance();
$ci->load->library('email');
$config['protocol'] = "smtp";
$config['smtp_host'] = "ssl://smtp.gmail.com";
$config['smtp_port'] = "465";
$config['smtp_timeout']="30";
$config['smtp_user'] = "username@gmail.com";
$config['smtp_pass'] = "*****";
$config['charset'] = "utf-8";
$config['mailtype'] = "html";
$config['newline'] = "\r\n";
$ci->email->initialize($config);
$ci->email->from('username@gmail.com', 'Name');
$list = array($user_id);
$ci->email->to($list);
$ci->email->subject('Test: Forgot Password');
$ci->email->message($pass);
if ($this->email->send()) {
echo 'Email sent!';
} else {
show_error($this->email->print_debugger());
}
}
}
}
?>
这是我的模型代码:
<?php
class User_model extends CI_Model{
function get_user_detail($user_id){
$this->db->where("user_id", $user_id);
$query = $this->db->get('user');
return $query->row();
}
}
?>
我在使用这些函数时遇到这种错误:
遇到了 PHP 错误
严重性:警告
Message: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Filename: libraries/Email.php
Line Number: 1959
Backtrace:
File: C:\xampp\htdocs\rest_api\application\controllers\owner.php
Line: 71
Function: send
File: C:\xampp\htdocs\rest_api\index.php
Line: 292
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: fsockopen(): Failed to enable crypto
Filename: libraries/Email.php
Line Number: 1959
Backtrace:
File: C:\xampp\htdocs\rest_api\application\controllers\owner.php
Line: 71
Function: send
File: C:\xampp\htdocs\rest_api\index.php
Line: 292
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: fsockopen(): unable to connect to ssl://smtp.gmail.com:465 (Unknown error)
Filename: libraries/Email.php
Line Number: 1959
Backtrace:
File: C:\xampp\htdocs\rest_api\application\controllers\owner.php
Line: 71
Function: send
File: C:\xampp\htdocs\rest_api\index.php
Line: 292
Function: require_once
谁能给我一个解决方案?感谢您的帮助:)
【问题讨论】:
-
如果您使用本地主机,请确保您已设置电子邮件设置,如此处为 wamp 和 xampp youtube.com/watch?v=TO7MfDcM-Ho
-
还要确保您使用 CI 3 的文件名 owner.php 更改为 Owner.php 控制器的第一个字母和模型的类和文件名应该是大写的。
标签: php codeigniter email