重复:
我正在使用php发送HTML电子邮件。我想在HTML中使用嵌入式图像。可能吗?我尝试了很多不同的方法,但都没有。有人能帮我吗?
由于
答案 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
再次: