如何在codeigniter中显示电子邮件中的图像?

时间:2015-08-06 03:08:17

标签: php codeigniter

      $this->load->library('upload');
      $this->load->library('email');
      $this->email->set_newline("\r\n");
      $this->email->from($email);
      $this->email->to($cus_email);
      $this->email->subject($promo_name.' Offers');
      $this->email->message($remarks.'/n <img src="<?php echo base_url();?>images/promotions/<? echo $image; ?>" style="float: left;margin-top: -11px;width: 100px;margin-left:10px;" />');


     // $this->email->attach($img,'inline');
    // $this->email->attach($img);
       $this->email->send();

尝试包含在消息中并尝试作为内联附件,但两者都没有用。我需要的是发送电子邮件&amp;在打开它时,应该看到图像。

目前我正在接收电子邮件,如下所示

$remarks.'/n <img src="<?php echo base_url();?>images/promotions/<? echo $image; ?>" style="float: left;margin-top: -11px;width: 100px;margin-left:10px;" />')

2 个答案:

答案 0 :(得分:4)

方法01(Codeigniter)

将图像上传到您的服务器。

发送电子邮件的控制器中,添加以下行:

$this->email->attach("/home/yoursite/location-of-file.jpg", "inline");

然后在电子邮件视图中添加以下内容:

<img src="cid:location-of-file.png" border="0">

location-of-file.jpg将更改为该资源的内容ID。

其他内容也适用,例如...src="...href="url('')

方法02(标准)

$to = 'receiver@gmail.com';
$subject = 'Mail With Inline Image';

$message = 'This is first line';
$message .= 'This is Second line';
$message .= '<img src="http://example.com/images/filename.jpg" alt="my picture">';

$header = 'MIME-Version: 1.0';
$header .= 'Content-Type: text/html; charset="ISO-8859-1';

mail($to, $subject,$message,$header)

答案 1 :(得分:0)

我不确定其他答案是否有用,但是最新的3.1.9几乎没有什么不同,我只是对其进行了测试。

https://www.codeigniter.com/user_guide/libraries/email.html

$filename = '/img/photo1.jpg';
$this->email->attach($filename);
foreach ($list as $address)
{
        $this->email->to($address);
        $cid = $this->email->attachment_cid($filename);
        $this->email->message('<img src="cid:'. $cid .'" alt="photo1" />');
        $this->email->send();
}

文件名是服务器上文件的完整路径。首先,附加文件,然后获取文件的cid,并在电子邮件正文中的任何位置内联显示它。