html formatted emailing in codeigniter

一曲冷凌霜 提交于 2019-12-11 06:27:22

问题


how to send html formatted email in codeigniter i have this code which is sending email fine but it is not formatting it as it should look! you can see the picture which displays email received

function email_sender()
        {
            //      $this->load->helper('form');
            // $this->load->helper('url');
            $config = Array(
                    'protocol' => 'sendmail',
                    'smtp_host' => 'ssl://smtp.gmail.com',
                    'smtp_port' => '465',
                    'smtp_timeout' => '7',
                    'smtp_user' => '****@****.com',
                    'smtp_pass' => '*******',
                    'charset' =>'utf-8',
                    'newline' => "\r\n",
                    'MIME-Version' => '1.0',
                    'mailtype' => 'html',
                    'header' => 'MIME-Version: 1.0',
                    'header' => 'Content-type:text/html;charset=UTF-8'
                );//initializing mail headers and information
            if ($this->input->post('submit')==true) 
            {
            $data['name']=$this->input->post('contact-name');
            $data['email']=$this->input->post('contact-email');
            $data['phone']=$this->input->post('contact-tel');
            $data['country']=$this->input->post('contact-country');
            $data['message']=$this->input->post('exampleTextarea');
            }//input from form
            $html_formattedEmail = $this->load->view('includes/email_template', $data, TRUE);//variable that loads view and save it as string
            $this->load->library('email', $config);
            // $this->email-> set_newline("\r\n");
            $this->email->from('abc@abc.com');
            $this->email->to($data['email']);
            $this->email->subject('Contact form submitted');
            $this->email->message($html_formattedEmail);

            if($this->email->send()){
                $data['main_content'] = 'thankyou_page';
                 $data['meta_title'] = 'abc';
                    $data['meta_description'] = 'abc2';
                     $data['meta_author'] = 'abc3';
            $this->load->view('includes/template', $data);

            }
            else{
                show_error($this->email->print_debugger());
            }
        }

回答1:


You can try this line of code, which will set mail type to HTML:

$this->email->set_mailtype("html");



回答2:


Try this

// load email library
$this->load->library('email');

// prepare email

$this->email
    ->from('ex@example.com', 'Example Test.')
    ->to('toex@example.com')
    ->subject('Hello Sample Test.')
    ->message('Hello, We are <strong>Htl content</strong>')
    ->set_mailtype('html');

// send email
$this->email->send();

You can also use a view file

$this->email
    ->from('ex@example.com', 'Example Test.')
    ->to('toex@example.com')
    ->subject('Hello Sample Test.')
    ->message($this->load->view('email_template-name', $dynamic-data, true))
    ->set_mailtype('html');



回答3:


$config = Array(
    'mailtype' => 'html'
);

Add this to your mail config and recheck.



来源:https://stackoverflow.com/questions/43604440/html-formatted-emailing-in-codeigniter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!