如何在HTML电子邮件中嵌入图像?

时间:2012-01-14 12:40:23

标签: php codeigniter html-email newsletter

  

重复:

     

How to embed images in email

     

How to embed images in html email

     

Embed images for use in email message using PHP?

我正在使用php发送HTML电子邮件。我想在HTML中使用嵌入式图像。可能吗?我尝试了很多不同的方法,但都没有。有人能帮我吗?

由于

4 个答案:

答案 0 :(得分:2)

您需要提供图片所在的整个网址 例如:

<img src='http://www.mydomain.com/imagefolder/image.jpg' alt='my-image' width='' height=''>

答案 1 :(得分:2)

这不是真正的微不足道,但有几次尝试可行。

首先,了解如何构建多部分电子邮件,其中附有正确的图像。如果您无法附加图片,他们显然不会在电子邮件中。确保将类型设置为multipart/related

其次,了解如何设置cid引用,特别是附件的Content-ID标题。

第三,将它们粘在一起。

在每个步骤中,执行以下操作:

  • 在结果
  • 上查看
  • 向您自己发送电子邮件,并将其与您收到的内容进行比较
  • 与工作示例电子邮件进行比较

答案 2 :(得分:2)

我发现通过电子邮件发送图像的最佳方法是使用base64对它们进行编码。

有很多关于此的链接和教程,但这里的Codeigniter代码应该足够了:

/* Load email library and file helper */
$this->load->library('email');
$this->load->helper('file');

$this->email->from('whoever@example.com', 'Who Ever'); // Who the email is from
$this->email->to('youremailhere@example.com'); // Who the email is to

$image = "path/to/image"; // image path

$fileExt = get_mime_by_extension($image); // <- what the file helper is used for (to get the mime type)

$this->email->message('<img src="data:'.$fileExt.';base64,'.base64_encode(file_get_contents($image)).'" alt="Test Image" />'); // Get the content of the file, and base64 encode it

if( ! $this->email->send()) {
    // Error message here
} else {
    // Message sent
}

答案 3 :(得分:0)

这是一种获取字符串变量的方法,而不必担心编码。

如果你有 Mozilla Thunderbird ,你可以用它来为你获取html图像代码。

我在这里写了一个小教程,附有截图(适用于powershell,但这并不重要):

powershell email with html picture showing red x

再次:

How to embed images in email