Как отправить электронное письмо с контентом из View в codeigniter

Я хочу отправить электронное письмо пользователю из моего приложения с содержанием электронного письма, загруженного изview  , Это код, который я опробовал до сих пор:

$toemail = "[email protected]";

$subject = "Mail Subject is here";
$mesg = $this->load->view('template/email');

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

$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$config['mailtype'] = 'html';

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

$this->email->to($toemail);
$this->email->from($fromemail, "Title");
$this->email->subject($subject);
$this->email->message($mesg);
$mail = $this->email->send();
 imsyedahmed20 мая 2012 г., 08:46
у меня вопрос "Как отправить электронное письмо с контентом из View в codeigniter"? см. "Я хочу" мое описание вопроса так
 Niranjan19 мая 2012 г., 09:42
Почему вы хотите отправить письмо из представления. Вы можете получить данные в контроллере (из формы, которая может быть в виде или из базы данных).
 hakre19 мая 2012 г., 14:24
& quot; Я хочу & quot; это не вопрос.

Ответы на вопрос(4)

Эта линия$mesg = $this->load->view('template/email',true); должно быть так
$mesg = $this->load->view('template/email','',true);
с одинарными кавычками перед значением true, и оно будет отлично работать

 26 февр. 2014 г., 16:48
Это должен быть исключенный ответ на вопросellislab.com/codeigniter/user-guide/general/views.html

ь и метатег перед отправкой электронной почты

$this->data['data'] = $data;
$message = $this->load->view('emailer/create-account', $this->data,  TRUE);
$this->email->set_header('MIME-Version', '1.0; charset=utf-8');
$this->email->set_header('Content-type', 'text/html');
$this->email->from($email, $name);
$this->email->to('[email protected]');
$this->email->subject($subject);
$this->email->message($message);
$this->email->send();
 02 мар. 2017 г., 16:34
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа.

            $subject = 'New message.';
            $config = Array(        
                'protocol' => 'sendmail',
                'smtp_host' => 'Your smtp host',
                'smtp_port' => 465,
                'smtp_user' => 'webmail',
                'smtp_pass' => 'webmail pass',
                'smtp_timeout' => '4',
                'mailtype'  => 'html', 
                'charset'   => 'utf-8',
                'wordwrap' => TRUE
            );
            $this->load->library('email', $config);
            $this->email->set_newline("\r\n");
            $this->email->set_header('MIME-Version', '1.0; charset=utf-8');
            $this->email->set_header('Content-type', 'text/html');

            $this->email->from('from mail address', 'Company name ');
            $data = array(
                 'message'=> $this->input->post('message')
                     );
            $this->email->to($toEmail);  
            $this->email->subject($subject); 

            $body = $this->load->view('email/sendmail.php',$data,TRUE);
            $this->email->message($body);   
            $this->email->send();
Решение Вопроса
You need to call $this->load->library('email'); within the controller as well for the email in CI to work. Also , in your code : $fromemail is not initialized. You need to have SMTP support on your server. $config should be declared as an array before assigning values and keys.

$this->load->library('email');
$fromemail="[email protected]";
$toemail = "[email protected]";
$subject = "Mail Subject is here";
$data=array();
// $mesg = $this->load->view('template/email',$data,true);
// or
$mesg = $this->load->view('template/email','',true);


$config=array(
'charset'=>'utf-8',
'wordwrap'=> TRUE,
'mailtype' => 'html'
);

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

$this->email->to($toemail);
$this->email->from($fromemail, "Title");
$this->email->subject($subject);
$this->email->message($mesg);
$mail = $this->email->send();

Edit: $mesg = $this->load->view('template/email',true); должен иметьtrue как указывает ликанец. Установив его как true, он не отправляет данные в выходной поток, но возвращает в виде строки.

Edit: $this->load->view(); нужен второй параметр с данными или пустой как$mesg = $this->load->view(view,data,true);если не получится

 imsyedahmed19 мая 2012 г., 11:12
это работает: $ mesg = $ this-> load-> view («payment / step1», «true»);
 19 мая 2012 г., 11:12
@lycanian, иначе это эхо. Благодарю.
 19 мая 2012 г., 11:15
@lycanian Все остальное в порядке? Примите это как решение, если код работает.
 15 окт. 2015 г., 10:59
Это действительно необходимо для загрузки библиотеки$this->load->library('email'); дважды?

Ваш ответ на вопрос