http://qs1969.pair.com?node_id=11121535


in reply to Re:Send Email With Picture Embedded in Body of Email
in thread Send Email With Picture Embedded in Body of Email (SOLVED)

You may find this usefull, view source was very informative.

Embed Base64-Encoded Images Inline In HTML

  • Comment on Re^2: Send Email With Picture Embedded in Body of Email

Replies are listed 'Best First'.
Re^3: Send Email With Picture Embedded in Body of Email
by roho (Chancellor) on Sep 10, 2020 at 15:11 UTC
    Thank you huck. That got me a step closer. The embedded image no longer displays as raw base64 data in the email. The image still does not display in the body of the email. It appears as separate HTML attachment. When I downloaded the HTML attachment to check it in my browser (Chrome), the browser displays raw base64 code instead of the image. I'm sure this should not be this hard, but there are a lot of moving parts. Here is the latest attempt to display an embedded image in the body of the email using <img src=\"data:image/jpeg; base64," in the reference you provided:

    ############################################################## # Email - body (image) [NOT working] ############################################################## $smtp->datasend("--$boundary\n"); $smtp->datasend("MIME-Version: 1.0\n"); $smtp->datasend("Content-Type: text/html\n"); $smtp->datasend("Content-Transfer-Encoding: base64\n"); $smtp->datasend("Content-Disposition: inline\n"); $smtp->datasend("\n"); $smtp->datasend("<body><img src=\"data:image/jpeg; base64,"); open(my $fh2, '<', $pic) || die("Could not open Jpg file!"); binmode($fh2); local $/=undef; while (read($fh2, my $chunk, 72*57)) { my $buf = &encode_base64( $chunk ); $smtp->datasend($buf); } $smtp->datasend("\"></body>"); $smtp->datasend("\n"); close($fh2);

    "It's not how hard you work, it's how much you get done."