PHPMailer, AddStringAttachment ve Veri URI Şeması

2 Cevap php

I toDataURL() ($contact_image_data) kullanarak verilere canvas elemanı (URI Şeması) içeriğini çevirdim ve ben bir ek olarak e-posta yoluyla bu göndermek istiyorum. Bu benim PHPMailer kurdunuz nasıl şu anda:

$contact_image_data="data:image/png;base64,iVBORw0KGgo[...]";
$filename="test.png"; 
$encoding = "base64"; 
$type = "image/png";
$mail->AddStringAttachment($contact_image_data, $filename, $encoding, $type);

Bu gerçekten mümkün olup olmadığını merak ediyorum, ve eğer öyleyse, hangi adımları ben eksik.

I $contact_image_data içeriğini içeren "test.png" adında bir dosya eklemek, bir e-posta gönderebilir, ama aslında bir görüntü yaratmaz.

Herhangi bir yardım much mutluluk duyacağız.

Samuel.

2 Cevap

Evet bu mümkün olmalıdır. Nasıl çıktı o bilir yani 'image / png' MIME türüyle) (toDataURL arıyorsun?

Iki bileşenden içine komut kırma deneyin - Eğer gerçekten bir PNG then postalamak deneyin emin olun.

Yazılı Örneğin, bilgisayarınızda açık test.png olacak? ..

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

Bu biraz yardımcı olur umarım!

Ben data:image/png;base64, bölümü ve base64_decode() veri şerit için gerekli çıkıyor:

$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);