0

Im trying to send an array in an email. I use the function

$this->email->message(print_r($array2, true));

When i use this, the array come through in the email, but its displayed in a single line. Is it possible to use something like "pre and /pre" tags to format it? I tried using the typography helper in CI,

$this->load->helper('typography');
$array2 = auto_typography($array);

but it doesn't seem to work. Any ideas on how to go about this?

Thanks,

Chris.

4

3 回答 3

0

我建议在消息方法中发送数组而不将 print_r 函数附加到调用中。我会改为使用视图并将数组发送到视图进行显示。

于 2013-07-20T16:26:53.527 回答
0

如果需要,您可以发送带有 PRE 标签的电子邮件。您将需要使用解析器。此外,首先您需要确保您的电子邮件配置文件设置为发送 HTML 电子邮件而不是纯文本。

在 autoload.php 中包含解析器库。

然后在你的控制器中构造数组并解析它:

$data = array('array' => $array);
$body = $this->parser->parse('path_to/email_template', $data, true);

将您的电子邮件模板放在您的视图文件夹中并像这样使用它。

<pre>
  {array}
</pre>
于 2013-07-20T17:05:48.373 回答
0

这个有效。我尝试过这个。

$message = '<pre>'.print_r($array2, true).'</pre>';
$this->email->message($message);

但是您需要先执行此操作。在您的电子邮件配置中:

$config = Array(
            'protocol' => 'smtp',
            'mailtype'  => 'html',
            'charset'   => 'iso-8859-1',
            'newline'  => '<br/>',
            'wordwrap'  => TRUE
);

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

$config['mailtype'] 负责预格式化文本。

于 2013-07-20T17:09:06.393 回答