#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;
use Email::MIME;
use MIME::Base64;
use File::Slurp;
my $html = <<EOF;
<html>
<head>
<title>Testmail</title>
</head>
<body>
<p>This is a test html mail with an inline graphic.<br/>
<img src="cid:logo" alt="Logo" width="158px" height="70px" /><
+/p>
</body>
</html>
EOF
# read the file
my $filename = 'logo.png'; # take filename of a small 158x70 png
my $image = read_file($filename, binmode => ':raw');
my $image_encoded = encode_base64($image);
my $mail_part = Email::MIME->create(
attributes => {
content_type => "text/html",
charset => "UTF-8",
encoding => "quoted-printable",
},
body_str => $html,
);
my $jpeg_part = Email::MIME->create(
header_str => [
'Content-ID' => '<logo>',
'Content-Disposition' => 'inline',
],
attributes => {
content_type => "image/png",
encoding => "base64",
},
body => $image,
);
my $mail = Email::MIME->create(
header_str => [
'To' => 'yourmail@yourdomain.de',
'From' => 'McA@perlmonks.org',
'Subject' => 'Testmail with inline graphic',
],
attributes => {
content_type => "multipart/related",
},
parts => [
$mail_part,
$jpeg_part,
],
);
say $mail->as_string;
Best regards
McA |