2015-05-11 23 views
2

我试图从包含图像的PHP发送HTML邮件。发送邮件时缺少<img>的src属性

我收到电子邮件,除了<img>标签以外,所有HTML标签都很好看。

电子邮件的消息是这样的:

$message = '<img src="http://your-click.ch/wp-content/uploads/2014/11/logo1.png" alt="Your Click" width="131" height="52" border="0" />';

当我收到邮件,我看到有一个形象,但它仅仅是空白。当我检查这个元素时,我看到这个代码:

<img alt="Your Click" width="131" height="52" border="0"> 

正如你所看到的那样,整个src属性是缺失的?为什么?

+0

的'/>'也得到了替换'>',所以HTML就被解析了。也许你的邮件软件去除图像? – Felk

+0

大多数邮件客户端会因为滥用而追踪emaul地址是否适用于垃圾邮件发送者而删除图片 –

+0

顶部是否有消息要求您下载图片? –

回答

3

出于安全原因,某些电子邮件客户端会过滤掉外部链接的图像。尝试编码图像并将其包含在消息正文中,而不是外部链接它。

+0

并不总是可以对电子邮件中的所有图像进行编码。我包括许多其他人已成功使用外部图像 –

0

查看是否存在以下帮助

$message = '<img src="http://your-click.ch/wp-content/uploads/2014/11/logo1.png" alt="Your Click" width="131" height="52" border="0" style="width:131px; height:52px; border:0px; background:url('http://your-click.ch/wp-content/uploads/2014/11/logo1.png')" />'; 
+0

这不适合我。我得到的是:'Your Click' –

3

的图像可能是由收件人邮件服务器过滤,尝试base64_encode的图像,即:

$image = file_get_contents('http://your-click.ch/wp-content/uploads/2014/11/logo1.png'); 
$message = '<img src="data:image/png;base64,'.base64_encode($image).'" alt="Your Click" width="131" height="52" border="0" />'; 
+1

我以前有类似的问题,base64是我如何解决它,所以这得到我的投票 – Darren

+0

我试过这个代码,但我仍然有同样的问题。 src属性不会出现。 –

+0

你有没有试过发送给不同的收件人?如果是的话,结果如何? –