Я пытаюсь отправить своих клиентов по почте через CodeIgniter, это похоже на то, когда я регистрирую встречу, он отправляет электронное письмо, находя адрес электронной почты клиента в таблице клиентов и другие материалы из другой таблицы и отправляю электронное письмо для подтверждения.
это мой App_model.php
public function send_mail()
{
$query=$this->db
->select('*, employee.name_emp as emp_name, customer.name as
cust_name, servicetype.name_set as s_name, serviceplan.price as
p_rice')
->from('appointment')
->join( 'customer', 'customer.id= appointment.name_app')
->join( 'servicetype', 'servicetype.id_set= appointment.sertype')
->join( 'employee', 'employee.id_emp= appointment.emp')
// ->join('serviceplan', 'serviceplan.price=appointment.price_app')
->get();
return $query->result();
}
это мой App_controller
function sendmail($appointment_id){
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'xxx',
'smtp_pass' => 'xxx',
'mailtype' => 'html',
'charset' => 'iso-8859-1'
);
$this->load->library('email', $config);
$this->email->set_newline("\r\n");
// Set to, from, message, etc.
$this->load->model('App_model');
$appointment=$this->App_model->send_mail($appointment_id);
// print_r($appointment);
//exit();
$message=Array(
$message=Array(
'Name'=>$appointment[0]->cust_name,
'Service Type'=>$appointment[0]->s_name,
// 'Service Plan'=>$appointment->p_rice,
'Employee'=>$appointment[0]->emp_name,
'Date'=>$appointment[0]->date,
'Time'=>$appointment[0]->time
);
$this->email->from('xxx', 'xxx');
$this->email->to('xxx');
$this->email->subject('Confirmation of Your Appointment');
$this->email->message($message);
$result = $this->email->send();
}
Я проверяю с помощью print_r($appoinment), и он показывает все данные, но когда я запускаю всю программу, она не показывает никаких ошибок, и по-прежнему почта не работает
Произошла ошибка PHP Серьезность: уведомление
Сообщение: Попытка получить свойство не-объекта
Имя файла: контроллеры / App_controller.php
Спасибо за помощь
Я предполагаю, что send_mail() должен быть send_mail($appointment_id), иначе как вы получаете $appointment_id в функции (опечатка)? Далее я склонен согласиться с остальными, у вас нет ссор. Либо ваш запрос не выполняет то, что вы думаете, либо $appointment_id ни к чему не относится ... либо ваша опечатка на самом деле не была опечаткой, и в этом случае я удивлен, что вы не получаете ошибок ...
Я удаляю $ assign_id из модели, теперь она работает, но все еще не могу отправлять данные по почте
Можете ли вы также добавить результат print_r, а для отправки почты smtp вам нужен идентификатор электронной почты и пароль, чтобы тогда отправлялась только почта.






Здесь вы передаете переменную от контроллера к модели
$appointment=$this->App_model->send_mail($appointment_id);
Но в модели вы не получаете никаких переменных.
public function send_mail()
Измените это на
public function send_mail($appointment_id)
Вам нужно использовать переданный $ assign_id в условии where, если он не возвращает все строки в таблице.
просто напечатайте $ query Я думаю, ваш запрос не будет работать.