PHPMailer, AddStringAttachment and Data URI Scheme

php, phpmailer

Solution

Yes it should be possible. Are you calling toDataURL() with the 'image/png' MIME type so it knows how to output it?

Try breaking your script into two components - make sure you really have a PNG then try mailing it.

For example, will test.png open on your computer when written?..

<?php
$contact_image_data="data:image/png;base64,iVBORw0KGgo[...]";
$fp = fopen('test.png', 'w');
fwrite($fp, $contact_image_data);
fclose($fp);
?>

Hope that helps a bit!

Problem

I have converted the contents of a `canvas` element to data (URI Scheme) using `toDataURL()` (`$contact_image_data`) and I want to send this via email as an attachment. This is currently how I have PHPMailer set up: ``` $contact_image_data="data:image/png;base64,iVBORw0KGgo[...]"; $filename="test.png"; $encoding = "base64"; $type = "image/png"; $mail->AddStringAttachment($contact_image_data, $filename, $encoding, $type); ``` I am wondering if this is actually possible, and if so, what steps I am missing. I can send an email, attach a file named “test.png” which contains the contents of `$contact_image_data`, but it doesn’t actually create an image. Any help would be much appreciated. Samuel.

Original source