MIME :: Lite和内联CSS图像

时间:2013-04-22 11:42:50

标签: html perl email mime

我有以下代码:

#!/root/bin/perl
use strict;
use warnings;
use MIME::Lite;


my $data =<<"DATA";
<!DOCTYPE HTML PUBLIC >
<html>
<head>
<style>

#header {
  background-image: url("cid:background.png");
}
</style>


</head>
<body>
<div id="header"></div>
<img src="cid:logo_header.png"></img>
</body>
</html>

DATA

my $msg = MIME::Lite->new(
         To      => 'xxx@xxx.com',
         Subject => 'title',
         Type    => 'text/html',
         Data    => $data
    );
    $msg->attach(
        Type => 'image/png',
        Id   => 'logo_header.png',
        Path => 'logo_header.png',
    );
   $msg->attach( Type => 'image/png',
                 Id   => 'background.png',
                 Path => 'background.png'); 
   $msg->send();

当我将图像作为背景放置或<img>它显示正常时,似乎它不会在CSS中显示图像(这个模块甚至会解析非HTML标签吗?) 我甚至尝试将background-image: url("cid:background.png");转换为background-image: url("background.png");,但这也不起作用。

任何想法?

1 个答案:

答案 0 :(得分:1)

我想你会想要CSS::Inliner。专为此问题而设计。

html电子邮件客户端有许多限制。如果你围绕主题谷歌,你会发现他们都有自己的迷人怪癖。