PHPMailer, schéma AddStringAttachment et URI de données
Question
J'ai converti le contenu d'un élément canvas
en données (schéma URI) à l'aide de toDataURL ()
( $ contact_image_data ??code>) et je souhaite envoyer ceci par email en pièce jointe. Voici comment j'ai configuré PHPMailer:
$contact_image_data="data:image/png;base64,iVBORw0KGgo[...]";
$filename="test.png";
$encoding = "base64";
$type = "image/png";
$mail->AddStringAttachment($contact_image_data, $filename, $encoding, $type);
Je me demande si cela est réellement possible et, dans l'affirmative, quelles sont les étapes qui me manquent.
Je peux envoyer un courrier électronique en joignant un fichier nommé "# 8220; test.png & # 8221; qui contient le contenu de $ contact_image_data ??code>, mais il ne crée pas réellement une image.
Toute aide serait beaucoup appréciée.
Samuel.
La solution
Oui, cela devrait être possible. Appelez-vous toDataURL () avec le type MIME 'image / png' pour qu'il sache le sortir?
Essayez de diviser votre script en deux composants. Assurez-vous que vous avez bien un PNG , puis essayez de l'envoyer par courrier.
Par exemple, test.png s'ouvrira-t-il sur votre ordinateur une fois écrit?
<?php
$contact_image_data="data:image/png;base64,iVBORw0KGgo[...]";
$fp = fopen('test.png', 'w');
fwrite($fp, $contact_image_data);
fclose($fp);
?>
J'espère que ça aide un peu!
Autres conseils
Il s'avère que j'avais besoin de supprimer les données : image / png; base64, section
et base64_decode ()
les données:
$contact_image_data="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA";
$data = substr($contact_image_data, strpos($contact_image_data, ","));
$filename="test.png";
$encoding = "base64";
$type = "image/png";
$mail->AddStringAttachment(base64_decode($data), $filename, $encoding, $type);