问题
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