【问题标题】:Need advice for another ways to send email in codeigniter需要有关在 codeigniter 中发送电子邮件的另一种方法的建议
【发布时间】:2017-12-26 00:19:16
【问题描述】:

我在 codeigniter 中的电子邮件功能有问题,我无法在某些托管中使用 codeigniter 发送电子邮件,托管服务提供商说如果他们的托管不支持 phpmailer,我尝试了不同的托管它可以正常工作。

这是我的电子邮件源代码:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class app_admin_site extends CI_Controller {

    public function index()
    {
        $cek = $this->session->userdata('logged_in');
        if(empty($cek))
        {
            header('location:'.base_url().'app_admin');
        }
        else
        {
            $config['protocol'] = 'smtp';
            $config['smtp_host'] = 'mail.com';
            $config['smtp_port'] = '25';
            $config['smtp_timeout'] = '7';
            $config['smtp_user'] = 'admin@mail.com';
            $config['smtp_pass'] = 'abcdefgh';
            $config['charset'] = 'utf-8';
            $config['newline'] = "\r\n";
            $config['mailtype'] = 'text'; // or html
            $config['validation'] = FALSE; // bool whether to validate email or not

            $page=$this->uri->segment(3);
            $limit=$this->config->item('limit_data');
            if(!$page):
            $offset = 0;
            else:
            $offset = $page;
            endif;

            $d['tot'] = $offset;
            $tot_hal = $this->db->query("select * from tbl_site order by id_site ASC");
            $config['base_url'] = base_url() . 'app_admin_site/index/';
            $config['total_rows'] = $tot_hal->num_rows();
            $config['per_page'] = $limit;
            $config['uri_segment'] = 3;
            $config['first_link'] = 'Awal';
            $config['last_link'] = 'Akhir';
            $config['next_link'] = 'Selanjutnya';
            $config['prev_link'] = 'Sebelumnya';
            $this->pagination->initialize($config);
            $d["paginator"] =$this->pagination->create_links();
            $d['data_get'] = $this->db->query("select * from tbl_site order by id_site ASC
            LIMIT ".$offset.",".$limit."");
            $this->load->view("app_admin/global/header",$d);
            $this->load->view("app_admin/site/home");
            $this->load->view("app_admin/global/footer");
        }
    }

    public function simpan()
    {
        if($this->session->userdata('logged_in')!="")
        {
            $this->form_validation->set_rules('siteid', 'Site ID', 'trim|required');
            $this->form_validation->set_rules('sitename', 'Site Name', 'trim|required');
            $id['id_site'] = $this->input->post("id_param");

            if ($this->form_validation->run() == FALSE)
            {
                $st = $this->input->post('st');
                if($st=="edit")
                {
                    $q = $this->db->get_where("tbl_site",$id);
                    $d = array();
                    foreach($q->result() as $dt)
                    {                   
                        $d['id_param'] = $dt->id_site;
                        $d['siteid'] = $dt->siteid; 
                        $d['sitename'] = $dt->sitename; 
                        $d['remark'] = $dt->remark; 
                    }
                    $d['data_site'] = $this->db->get("tbl_site");   
                    $d['st'] = $st;
                    $this->load->view('app_admin/site/input',$d);
                }
                else if($st=="tambah")
                {
                    $d['siteid'] = "";      
                    $d['sitename'] = "";    
                    $d['remark'] = "";  
                    $d['id_param'] = "";
                    $d['st'] = $st;
                    $d['data_site'] = $this->db->get("tbl_site");
                    $this->load->view('app_admin/site/input',$d);
                }
            }
            else
            {
                $st = $this->input->post('st');
                if($st=="edit")
                {
                    $upd['siteid'] = $this->input->post("siteid");
                    $upd['sitename'] = $this->input->post("sitename");
                    $upd['remark'] = $this->input->post("remark");
                    $this->db->update("tbl_site",$upd,$id);
                    ?>
                        <script>
                            window.parent.location.reload(true);
                        </script>
                    <?php
                }
                else if($st=="tambah")
                {           
                $this->load->library('email');  
                $datapesan['siteid'] = mysql_real_escape_string($this->input->post('siteid'));
                $datapesan['sitename'] = mysql_real_escape_string($this->input->post('sitename'));
                $datapesan['remark'] = mysql_real_escape_string($this->input->post('remark'));
                $isi_psn = 'Berikut data<br><br>                    
                            Detail Data<br>
                            Data Site ID : '.$datapesan['siteid'].'<br>
                            Site Name : '.$datapesan['sitename'].'<br>
                            Remark : '.$datapesan['remark'].'<br><br>
                            ';
                    $isi_psn .='Salam, Admin';
                    $this->email->set_mailtype('html');
                    $this->email->from("admin@mail.com", "Admin");
                    $this->email->to("xxx@mail.com");
                    $this->email->subject('Detail Data Input');
                    $this->email->message($isi_psn);    
                    $hsl = $this->email->send();
                    $this->email->clear();

                    $in['siteid'] = $this->input->post("siteid");
                    $in['sitename'] = $this->input->post("sitename");
                    $in['remark'] = $this->input->post("remark");
                    $this->db->insert("tbl_site",$in);
                    ?>
                        <script>
                            window.parent.location.reload(true);
                        </script>
                    <?php
                }

            }
        }
        else
        {
            header('location:'.base_url().'');
        }
    }


}

托管服务提供商说是否可以通过其他方法使用邮件服务,但他们没有给我提供其他解决方案的示例,有什么想法可以解决我在 codeigniter 中的问题吗?

nb:我已经尝试过使用不同的托管方式,我的代码可以正常工作,我的网络可以发送电子邮件。但它不能在我自己的主机上工作,所以我需要另一个解决方案

请告知,谢谢...

【问题讨论】:

  • Codeigniter 提供邮件库试试看click here
  • 首先,制作一个单个 PHP 文件的小演示,以检查 SMTP 是否在您的服务器上工作。如果它不起作用,那么您需要将 SMTP 更改为 Gmail 或任何其他好的电子邮件服务提供商。
  • 我上面的代码已经在另一个主机上工作了,但是在我自己的主机上它不能工作,他们说因为我的电子邮件方法不能支持它,如果有任何建议或其他方法有源有助于理解的代码...
  • $config['smtp_host'] = 'mail.com';更改为$config['smtp_host'] = 'mail.smtp.com';

标签: php codeigniter email


【解决方案1】:

查看此链接以创建利用 CI 电子邮件库的电子邮件模型

https://github.com/ddell003/Email_model

【讨论】:

  • 出现这样的错误致命错误:调用未定义的函数imap_rfc822_parse_headers(),如何解决?
  • 你需要添加 php imap 扩展。 stackoverflow.com/questions/9654453/…
  • 如果我在在线托管中试用这个怎么样?因为它发生在在线托管中,而不是在我的 xampp localhost...
  • 您需要在您的服务器上启用该 php 扩展
【解决方案2】:

按照此代码可以帮助您。

        $this->email->set_mailtype('html'); 
        $this->email->from(webmail_from, 'sender mail id');
        $this->email-
        >reply_to(webmail_from,'youth_career_applicants_registration');
        $this->email->to('receiver mail id'); 

        $data = array(
             'name'=> $this->input->post('txtFirstName'),
             'mail'=> $this->input->post('txtEmail'),
             'pass'=> $otp
        );
        $this->email->subject('Youth subject');
        $body = $this->load-
        >view('mail_templete/otp_details.php',$data,TRUE);          
        $this->email->message($body);
        if($this->email->send()){                                   
        }   
        else
        {           
        $data['message'] = $this->email->print_debugger();
        echo($this->email->print_debugger());
        }

【讨论】:

    猜你喜欢
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 2012-12-05
    • 1970-01-01
    • 2014-07-13
    • 1970-01-01
    • 2013-01-07
    相关资源
    最近更新 更多