Comment puis-je envoyer une image en base64 sur un corps du mail avec PHP?
Je suis en train d'envoyer un e-mail avec une image en base64 sur le corps avec PHP en utilisant le code ci-dessous, mais l'image n'apparaît jamais... Si je change d'URL, il fonctionne, mais il n'est pas avec le base64... j'ai testé le base64 sur une nouvelle page avec <img src=base64>
et a travaillé aussi... Ce qui me manque??
<?php
//recipients
$to = $_POST['email'];
//subject
$subject = 'Test';
//message
$message = '
<html>
<head>
<title>Test</title>
</head>
<body>
<img src="'.$_POST['imageFromOtherPage'].'"/>
</body>
</html>
';
//To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
//Mail it
mail($to, $subject, $message, $headers);
?>
Voici mon image en base64 exemple: http://jsfiddle.net/28nP4/
Vous devez vous connecter pour publier un commentaire.
J'ai essayé différentes choses et la seule façon que j'ai trouvée a été de télécharger l'image et l'obtention de l'URL, j'ai obtenu qu'à partir de ce lien: http://j-query.blogspot.in/2011/02/save-base64-encoded-canvas-image-to-png.html
C'est très simple:
Et cela génère une URL, de sorte que, au lieu d'utiliser
<img src="'.$_POST['imageFromOtherPage'].'"/>
, j'utilise l'URL générée. A parfaitement fonctionné!j'ai le même problème, et finalement j'ai résolu. Il pourrait être utile pour vous:
Vous pouvez utiliser SwiftMailer, mais vous devez ajouter une nouvelle Image TextHeader 'Content-Localisation".
Voici le code:
fonction pour obtenir toutes les url des images :
Essayez de tester si $_POST['imageFromOtherPage'] contient le base64 , probablement le code est trop long pour un Poste, vous devez utiliser php://input .
Votre message doit commencer par
data:image/png;base64,
pour former un encodées en base64données:
URI.Mais même si vous remédier à ce problème, il est bien possible que le client de Messagerie que vous êtes en train de visualiser le message ne prend pas en charge la méthode à tous.
data:
Uri sont un phénomène relativement nouveau, au moins dans la chronologie de l'E-Mail de clients, dont la plupart sont encore en train de découvrir qu'il y a une technologie appelée CSS. La méthode éprouvée pour les images dans les E-Mails est d'intégrer l'image en ligne de l'attachement.Voici quelques approches qui ne reposent pas sur une bibliothèque: Faire PHP envoyer un e-mail avec une image en ligne de pièce jointe
Cependant, utiliser une bibliothèque comme Swiftmailer peut emporter beaucoup de douleur. Ici est la Swiftmailer de la documentation.