2012-04-17 3 views
0

Это должно быть просто, я пытаюсь загрузить файл представления в качестве своего сообщения электронной почты с помощью CodeIgniter. Дело в том, чтобы иметь HTML, а не только текстовое сообщение.html сообщение электронной почты в codeigniter/php

В настоящее время мои письма посылают в порядке, но сообщения являются пустым, если мой код выглядит как то, что он делает ниже:

Вот соответствующая часть PHP:

$config=array(
    'protocol' => 'smtp', 
    'smtp_host' => 'xxx', 
    'smtp_user' => 'xxx', 
    'smtp_pass' => 'xxx', 
    'smtp_port' => 587, 
    'mailtype' => 'html', 
    'crlf' => "\r\n", 
    'newline' => "\r\n" 
); 
$this->email->initialize($config); 
$this->email->subject('testing loading a view file'); 
$msg = $this->load->view('reviews/email', '', false); 
$this->email->message($msg); 

Вот какие отзывы/email.php файл выглядит следующим образом:

<html> 
<head></head> 
    <body> <h1>this should be BIG</h1> this should not 
      <a href="http://google.com/<? $php='login'; echo $php?>">Google</a> 
    </body> 
</html> 

Спасибо за любые советы вы могли бы иметь,

Tim

ответ

3

Вы неправильно загрузили страницу просмотра. Третий параметр должен быть TRUE, так что CodeIgniter вернет представление в виде строки.

$msg = $this->load->view('reviews/email', '', true); 

От http://codeigniter.com/user_guide/general/views.html:

Существует третий необязательный параметр позволяет изменить поведение функции так, что она возвращает данные в виде строки, а не отправлять его в свой браузер. Это может быть полезно, если вы хотите каким-то образом обработать данные . Если вы установите для параметра значение true (boolean), он вернет данные . По умолчанию используется значение false, которое отправляет его в ваш браузер. Не забудьте присвоить его переменной, если вы хотите, чтобы данные, возвращаемые:

$string = $this->load->view('myfile', '', true); 
+0

привет Кемаль, спасибо за предложение, что работал. Хотя ключевая часть для моей цели, добавление php-кода в ссылки не помогло. Можете ли вы подумать, почему это не сработало: 'google login' –

+0

@timpeterson Как именно он не работает? Не выводится ли строка 'login'? Плюс, было бы намного проще, если бы вы просто повторяли строку? Я не вижу смысла, почему вы должны сначала хранить его в переменной. На самом деле нет необходимости использовать печать строки с использованием PHP. Чистый HTML будет работать отлично (предположим, что это всегда будет одинаковым). –

+0

извините, он работает в том смысле, что при нажатии ссылки вы попадаете в соответствующий URL-адрес. Я был смущен, потому что, если вы наведите указатель мыши на ссылку, вы увидите URL-адрес, указывающий на мой почтовый сервер, за которым следуют такие случайные символы, как: http: // email.mysite.com/adfas73j3j3jd-adsfdfk'. Но да, если вы нажмете на нее, это приведет вас к 'mysite.com/login'. Это странно, вы понимаете, почему это происходит? –

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