2013-04-30 21 views
5

che sto usando qui di seguito il codice per inviare e-mail dal modulo di contatto del mio sito web basato CodeIgniter, per fare che sto usando qui di seguito i codici a mio controller,Codeigniter come modello HTML per le email

$entrydata['name']= $this->input->post('name'); 
    $entrydata['email']= $this->input->post('email'); 
    $entrydata['phone']= $this->input->post('phone'); 
    $entrydata['message']= $this->input->post('message');$msg = 'Email has sent successfully'; 

      $data['reset'] = TRUE; 
      $this->load->library('email'); 
      $this->email->from(set_value('email'), set_value('name')); 
      $this->email->to('[email protected]'); 
      $this->email->subject("Get a quote enquiry"); 
      $all = 'Name:' . set_value('name') ."\n". 'Email :' .' '. set_value('email') ."\n".'Phone :' .' '. set_value('phone') ."\n".'Message :' .' '. set_value('message'); $this->email->message($all); 
      $s=$this->email->send(); 
      $data['message'] = $msg; 

conosceva nessuno come aggiungere un modello di email personalizzato che trattiene le informazioni del mio modulo conact?

+1

stai tentando di inviare e-mail HTML formattato? – BK004

+0

@bhushan Sì .. che include i dati del mio modulo di contatto. –

risposta

16

Questo è un esempio che ho fatto

$data['map_to']=$this->input->post('map_to'); 
     $event=$this->db->query("query"); 
     if($event->num_rows()>0) 
     { 
      $data['event']=$event->row(); 
      $data['map_from']=$event->row()->address2; 
     } 
     else 
     { 
     $data['event']=NULL;  
     } 
     $data['sender_mail'] = '[email protected]'; 

     $this->load->library('email'); 
     $config = array (
        'mailtype' => 'html', 
        'charset' => 'utf-8', 
        'priority' => '1' 
        ); 
     $this->email->initialize($config); 
     $this->email->from($data['sender_mail'], 'xxxx'); 
     $this->email->to($mail); 
     $this->email->subject('Map Location'); 
     $message=$this->load->view('map_mail_format',$data,TRUE); 
     $this->email->message($message); 
     $this->email->send();  

Eccomi il caricamento di una pagina di visualizzazione chiamato map_mail_format e passaggio di valori a quella pagina vista ($data) quindi assegnare tale pagina al fine di una variabile poi inviare la posta con quel messaggio

+0

L'idea di creare template da una vista è nuova per me ... +1 per quello –

5

prima è necessario inizializzare config come

$config['charset'] = 'utf-8'; 
$config['wordwrap'] = TRUE; 
$config['mailtype'] = 'html'; 
$this->email->initialize($config); 

dopo aver caricato biblioteca di posta elettronica e quindi è possibile memorizzare la visualizzazione e-mail a una variabile e spedirla

$mailbody = $this->load->view('myfile', $data, true); 
2

Si può provare questo

$this->load->helper(array('email')); 
$this->load->library(array('email')); 
$this->email->set_mailtype("html");