2015-10-19 3 views
1

Я должен отправить электронное письмо пользователю, но письмо должно быть в формате HTML. Я читал другие сообщения здесь, но это не помогло.Форматирование HTML в сообщениях codeigniter

Вот мой код из контроллера:

public function reply_post(){ 

    $to = $this->input->post('contact_email'); 
    $subject = $this->input->post('contact_subject'); 
    $header_message = "<html><head><title>".$subject."</title></head><body>"; 
    $footer_message = "</body></html>"; 
    $input_msg = $this->input->post('contact_reply'); 
    $msg = $header_message.$input_msg.$footer_message; 
    $from = "[email protected]"; 

    $config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'mail.XXXXXX.com', 
     'smtp_port' => XXX, 
     'smtp_user' => '[email protected]', // change it to yours 
     'smtp_pass' => 'XXXXX', // change it to yours 
     'mailtype' => 'html', 
     'charset' => 'iso-8859-1', 
     'wordwrap' => TRUE 
    ); 

    $this->load->library('email', $config); 
    $this->email->set_newline("\r\n"); 
    $this->email->from($from, "Admin"); // change it to yours 
    $this->email->to($to);// change it to yours 
    $this->email->subject($subject); 
    $this->email->message($msg); 

    if($this->email->send()){ 
     $msg = 'Email sent.'; 
    } else { 
     log_message('error','Email did not send'); 
     $msg = "Email Did not send"; 
    } 
    $this->finish($msg); 
} 

Сообщение, которое я получаю от формы осуществляется с помощью редактора Summernote WYSIWYG, так что уже HTML отформатирован. Однако, когда я получаю письмо, оно не применяет к нему HTML-теги, и все теги видны. Его вроде как-то почтовый тип установлен на «текст», даже после установки его в HTML в конфиге.

+1

попробовать добавить '$ this-> email-> set_mailtype ("HTML");' – Linus

+0

разве что уже добавлен в массиве конфигурации 'mailtype => html' – cyberrspiritt

+0

Он сделал работу @AnmolRaghuvanshi. Не возражаете, но есть ли у вас объяснения? потому что он уже присутствовал в файле конфигурации – cyberrspiritt

ответ

1

Настройка параметров конфигурации не работает, если вы не инициализируете их. Добавьте это после $ массива конфигурации:

$this->email->initialize($config); 

Таким образом, вы не intealize его Так что не работать дальше, добавив

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

может решить вашу проблему.

библиотека нагрузки затем инициализировать

+0

Как получилось, когда я отправил данные с помощью редактора bootstrap wysiwyg. Но это не работало в summernote? – cyberrspiritt

+0

И config уже был передан функции загрузки библиотеки. Он инициализировал все, кроме почтового типа? – cyberrspiritt

+0

@cyberrspiritt btw Я не знаю о загрузке wysiwyg и summernote – Linus

Смежные вопросы