如何在 HTML 电子邮件中嵌入图像? [复制]
Posted
技术标签:
【中文标题】如何在 HTML 电子邮件中嵌入图像? [复制]【英文标题】:How do I embed images in HTML email? [duplicate] 【发布时间】:2012-02-10 08:19:50 【问题描述】:重复:
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 中使用嵌入的图像。可能吗?我尝试了很多不同的方法,但都没有奏效。请问有人能帮帮我吗?
谢谢
【问题讨论】:
我试过这个phpeveryday.com/articles/… @BenSwinburne : 无法发送邮件 @phpcochin:不要自己编写所有代码。获取一些处理构建多部分/MIME 电子邮件并支持文件附件的 PHP 类。这将使您的生活更加轻松,并可能节省您的工作时间。 (从您的普通电子邮件客户端)向您自己发送一封 HTML 电子邮件,并研究收到的邮件的源代码。这个“示例代码”将真正帮助您理解理论。 @ThiefMaster 可以分享一些例子吗? 【参考方案1】:我发现通过电子邮件发送图像的最佳方式是使用 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)).'" />'); // Get the content of the file, and base64 encode it
if( ! $this->email->send())
// Error message here
else
// Message sent
【讨论】:
【参考方案2】:这是一种无需担心编码即可获取字符串变量的方法。
如果您有 Mozilla Thunderbird,您可以使用它为您获取 html 图像代码。
我在这里写了一个小教程,并附上截图(这是针对powershell的,但这无关紧要):
powershell email with html picture showing red x
再说一遍:
How to embed images in email
【讨论】:
【参考方案3】:这并不是微不足道的,但可以尝试几次。
首先,了解如何构建包含正确图像的多部分电子邮件。如果您不能附上图片,它们显然不会出现在电子邮件中。确保将类型设置为multipart/related
。
其次,了解如何设置 cid 引用,尤其是附件的 Content-ID
标头。
第三,把它们粘在一起。
在每个步骤中,执行以下操作:
看看结果 发送邮件给自己,并与收到的邮件进行比较 比较它与一个工作示例电子邮件【讨论】:
【参考方案4】:您需要提供图片所在的完整网址 示例:
<img src='http://www.mydomain.com/imagefolder/image.jpg' alt='my-image' width='' height=''>
【讨论】:
完全按照我的做法,除了一件事。我总是在我的所有图像上使用 style="display:block" 来阻止 gmail 错误(在一些图像下方添加空间)。考虑将其添加到您的答案中吗? :) 无论你想写什么 css 都把它们作为内联 css。就这些 这篇文章是嵌入图片,不是从互联网访问它 他问如何嵌入图像...那不是嵌入...以上是关于如何在 HTML 电子邮件中嵌入图像? [复制]的主要内容,如果未能解决你的问题,请参考以下文章