0

これは単純である必要があります。CodeIgniterを使用してビューファイルを電子メールメッセージとしてロードしようとしています。重要なのは、テキストベースのメッセージだけでなく、HTMLを使用することです。

現在、私のメールは正常に送信されていますが、コードが以下のようになっている場合、メッセージは空です。

これが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);

reviews/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>

あなたが持っているかもしれないアドバイスをありがとう、

ティム

4

1 に答える 1

3

ビューを正しくロードしていません。3 番目のパラメーターはTRUE、CodeIgniter がビューを文字列として返すためのものです。

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

http://codeigniter.com/user_guide/general/views.htmlから:

3 つ目のオプション パラメータを使用すると、関数の動作を変更して、データをブラウザに送信するのではなく、文字列として返すことができます。これは、何らかの方法でデータを処理する場合に役立ちます。パラメータを true (ブール値) に設定すると、データが返されます。デフォルトの動作は false で、ブラウザに送信されます。データを返す場合は、忘れずに変数に割り当ててください。

$string = $this->load->view('myfile', '', true);
于 2012-04-17T14:55:25.283 に答える