Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当客户添加票据时,我想向在该部门工作的所有员工发送邮件_Php_Html_Css_Mysql_Codeigniter - Fatal编程技术网

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上的其他地方有很多关于这方面的信息,我也不确定你是否注意到了,但是客户的电子邮件是在你昨天发的图片中,因为你解决了我的实际问题,我也把这些电子邮件删掉了。感谢你所做的一切,祝你有一个美好的白天或夜晚。如果我把一封原始邮件,那么邮件就会被发送,所以我认为这不会是一个问题,但我仍然会尝试感谢你的输入。