Php 当客户添加票据时,我想向在该部门工作的所有员工发送邮件
我有票系统。因此,我希望每当用户创建新的工单时,都会向该部门的所有员工发送一封邮件 以下是我的型号代码:Php 当客户添加票据时,我想向在该部门工作的所有员工发送邮件,php,html,css,mysql,codeigniter,Php,Html,Css,Mysql,Codeigniter,我有票系统。因此,我希望每当用户创建新的工单时,都会向该部门的所有员工发送一封邮件 以下是我的型号代码: public function ticket_email() { $query = $this->db->select('staff_sign_up.email') ->distinct('staff_sign_up.email') ->f
public function ticket_email()
{
$query = $this->db->select('staff_sign_up.email')
->distinct('staff_sign_up.email')
->from('staff_sign_up')
->join('view_ticket','view_ticket.initial_department=staff_sign_up.department_id')
->get();
return $query->result();
}
public function ticket_send() {
$subject = 'A Ticket has been added please check & reply asap';
$message = '
<h3 align="center">Ticket Details</h3>
<table border="1" width="100%" cellpadding="5">
<tr>
<td width="30%">Subject</td>
<td width="70%">' . $this->input->post("subject") . '</td>
</tr>
<tr>
<td width="30%">Description</td>
<td width="70%">' . $this->input->post("description") . '</td>
</tr>
</table>
';
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => '******@gmail.com',
'smtp_pass' => '*******',
'mailtype' => 'html',
'charset' => 'iso-8859-1',
'wordwrap' => TRUE
);
$this->load->library('email');
$this->email->initialize($config);
$this->email->set_newline("\r\n");
$this->email->from('manojit.chakraborty58@gmail.com', 'admin');
$this->email->to($this->auth_model->ticket_email());
$this->email->subject($subject);
$this->email->message($message);
if ($this->email->send()) {
$this->session->set_flashdata('message', 'Your ticket has been generated,please wait sometime for reply');
} else {
show_error($this->email->print_debugger());
}
}
此模型获取在该部门工作的员工的所有邮件id
以下是我的控制器代码:
public function ticket_email()
{
$query = $this->db->select('staff_sign_up.email')
->distinct('staff_sign_up.email')
->from('staff_sign_up')
->join('view_ticket','view_ticket.initial_department=staff_sign_up.department_id')
->get();
return $query->result();
}
public function ticket_send() {
$subject = 'A Ticket has been added please check & reply asap';
$message = '
<h3 align="center">Ticket Details</h3>
<table border="1" width="100%" cellpadding="5">
<tr>
<td width="30%">Subject</td>
<td width="70%">' . $this->input->post("subject") . '</td>
</tr>
<tr>
<td width="30%">Description</td>
<td width="70%">' . $this->input->post("description") . '</td>
</tr>
</table>
';
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => '******@gmail.com',
'smtp_pass' => '*******',
'mailtype' => 'html',
'charset' => 'iso-8859-1',
'wordwrap' => TRUE
);
$this->load->library('email');
$this->email->initialize($config);
$this->email->set_newline("\r\n");
$this->email->from('manojit.chakraborty58@gmail.com', 'admin');
$this->email->to($this->auth_model->ticket_email());
$this->email->subject($subject);
$this->email->message($message);
if ($this->email->send()) {
$this->session->set_flashdata('message', 'Your ticket has been generated,please wait sometime for reply');
} else {
show_error($this->email->print_debugger());
}
}
Alex最新更新后:
public function ticket_email()
{
$query = $this->db->select('staff_sign_up.email')
->distinct('staff_sign_up.email')
->from('staff_sign_up')
->join('view_ticket','view_ticket.initial_department=staff_sign_up.department_id')
->get();
return $query->result();
}
public function ticket_send() {
$subject = 'A Ticket has been added please check & reply asap';
$message = '
<h3 align="center">Ticket Details</h3>
<table border="1" width="100%" cellpadding="5">
<tr>
<td width="30%">Subject</td>
<td width="70%">' . $this->input->post("subject") . '</td>
</tr>
<tr>
<td width="30%">Description</td>
<td width="70%">' . $this->input->post("description") . '</td>
</tr>
</table>
';
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => '******@gmail.com',
'smtp_pass' => '*******',
'mailtype' => 'html',
'charset' => 'iso-8859-1',
'wordwrap' => TRUE
);
$this->load->library('email');
$this->email->initialize($config);
$this->email->set_newline("\r\n");
$this->email->from('manojit.chakraborty58@gmail.com', 'admin');
$this->email->to($this->auth_model->ticket_email());
$this->email->subject($subject);
$this->email->message($message);
if ($this->email->send()) {
$this->session->set_flashdata('message', 'Your ticket has been generated,please wait sometime for reply');
} else {
show_error($this->email->print_debugger());
}
}
您可以尝试将smtp主机更改为ssl://smtp.gmail.com因为您似乎没有在注释中看到它:
$this->auth\u model->ticket\u email()
根据您的方案返回结果对象。您需要获得一个如下所示的字符串(或数组):
$this->email->to('one@example.com, two@example.com, three@example.com');
或
因此,至少您应该返回一个结果\u array()
,但您可能需要做一些工作才能将其转换为CI可以接受的数组
更新
public function ticket_email()
{
$query = $this->db->select('staff_sign_up.email')
->distinct('staff_sign_up.email')
->from('staff_sign_up')
->join('view_ticket','view_ticket.initial_department=staff_sign_up.department_id')
->get();
if ($query->num_rows() == 0) {
show_error('whatever');
}
return array_column($query->result_array(), 'email'); // make array CI email lib can understand
}
你可以让其他一切保持原样。尽管我建议检查是否
num\u rows()>0
,并处理不相应的情况。您是否检查了ticket\u email()
返回的内容?这不是一个字符串。嘿,从代码中删除你的电子邮件和密码。然后更改你的密码我确实打印了&它返回std对象类。将其更改为result\u array()
,然后再次执行print\r()
,然后将其转储到粘贴箱或imgur中(如果你不使用虚拟数据,可以用油漆或其他东西将电子邮件清空). 我们只需要看看它是如何格式化的;几行数据就足够了。是的,我做了。它显示了以下输出:-数组([0]=>Array([email]=>*********@gmail.com)[1]=>Array([email]=>*********@example.com)[2]=>Array([email]=>*********@gmail.com)[3]=>Array([email]=>*********@gmail.com])嘿@alex我更新了我的代码,请检查出了什么问题。以前我使用foreach发送邮件,但有一个问题,邮件只发送给一名员工。这是一个完全不同的问题,我无法在评论中解决,但基本上您需要为loclhost配置电子邮件系统。Stack上的其他地方有很多关于这方面的信息,我也不确定你是否注意到了,但是客户的电子邮件是在你昨天发的图片中,因为你解决了我的实际问题,我也把这些电子邮件删掉了。感谢你所做的一切,祝你有一个美好的白天或夜晚。如果我把一封原始邮件,那么邮件就会被发送,所以我认为这不会是一个问题,但我仍然会尝试感谢你的输入。