CPAN: grafik bei mail anzeigen

Beitrag lesen

So geht's:

  
use 5.010;  
use utf8;  
use strictures;  
use Courriel::Builder qw(build_email subject from to plain_body html_body attach);  
  
my $email = build_email(  
    subject('Überraschung'),  
    from('sascha <sascha@invalid>'),  
    to('Empfänger 1 <empfaenger1@invalid>', 'empfaenger2@invalid'),  
    plain_body(  
        content     => 'Glückwunsch zur Kettensäge',  
        encoding    => '8bit',  
    ),  
    html_body(  
        content     => '<p><img src="cid:chainsaw.png"> Glückwunsch zur Kettensäge</p>',  
        encoding    => '8bit',  
        attach(  
            file        => '/usr/share/pixmaps/chainsaw.png',  
            content_id  => 'chainsaw.png',  
        ),  
        attach(  
            file        => '/usr/share/pixmaps/terminal.png',  
            content_id  => 'terminal.png',  
        ),  
    ),  
);  
  
say $email->as_string;  

Die serialisierte Nachricht sieht in der Struktur so aus:

Subject: =?UTF-8?B?w5xiZXJyYXNjaHVuZw==?=
    From: sascha sascha@invalid
    To: =?UTF-8?B?RW1wZsOkbmdlcg==?= 1 empfaenger1@invalid,
      empfaenger2@invalid
    Date: Mon, 26 Sep 2011 13:18:05 -0000
    Message-Id: 1317043085.adE5ecB2.14895@notruescotsman
    MIME-Version: 1.0
    Content-Type: multipart/alternative; boundary=1317043085.1812871.14895

--1317043085.1812871.14895
    Content-Transfer-Encoding: 8bit
    Content-Type: text/plain; charset=UTF-8

Glückwunsch zur Kettensäge
    --1317043085.1812871.14895
    Content-Type: multipart/related; boundary=1317043085.70Ff70.14895

--1317043085.70Ff70.14895
    Content-Transfer-Encoding: 8bit
    Content-Type: text/html; charset=UTF-8

<p><img src="cid:chainsaw.png"> Glückwunsch zur Kettensäge</p>
    --1317043085.70Ff70.14895
    Content-ID: <terminal.png>
    Content-Disposition: attachment; filename=terminal.png
    Content-Transfer-Encoding: base64
    Content-Type: image/png; charset=binary

iVBORw0KGgo…

--1317043085.70Ff70.14895
    Content-ID: <chainsaw.png>
    Content-Disposition: attachment; filename=chainsaw.png
    Content-Transfer-Encoding: base64
    Content-Type: image/png; charset=binary

iVBORw0KGgo…

--1317043085.70Ff70.14895--

--1317043085.1812871.14895--

Du kannst sie mit Email::Sender verschicken.

Siehe http://htmlemailboilerplate.com/ für eine brauchbare Vorlage für den HTML-Teil.