Ich versuche, ein Bild, das ich als Zeichenfolge in Base64 auf E-Mail haben. Dies ist der Code, den ich verwende. Die Nachricht wurde erfolgreich gesendet, ich kann das Bild jedoch weder im Browser noch beim Herunterladen öffnen/anzeigen. Wenn ich Online-Vorschaubilder verwende, die base64 in Bilder umwandeln und ihnen den Inhalt der Variablen $qr_base64
übergeben, zeigen sie das Bild, das ich brauche. Was könnte das Problem sein? Danke im Voraus.Warum kann der Bildanhang nicht ordnungsgemäß über Google SMTP übertragen werden?
$mail = new PHPMailer(true);
try
{
//Tell PHPMailer to use SMTP
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Username = "[email protected]";
$mail->Password = "pass";
$mail->setFrom('[email protected]', 'First Last');
$mail->addAddress("$mailto", 'John Doe');
$mail->Subject = 'PHPMailer SMTP test';
$mail->msgHTML("asdf");
$mail->AltBody = 'This is a plain-text message body';
$mail->AddStringAttachment($qr_base64, "Filename.png");
$mail->send();
} catch (phpmailerException $e) {
echo $e->errorMessage();
} catch (Exception $e) {
echo $e->getMessage();
}
Es hat eine lange Zeit her, dass ich 'PHPMailer' verwendet, sollte aber ein' $ mail-> Body' nicht da sein? Jedenfalls sollten Sie die E-Mail selbst erfassen. Um das Bild in der Vorschau anzeigen zu können, muss die Mail "Content-Type: multipart/alternative" haben und der Teil, der das Bild enthält, muss ebenfalls den richtigen MIME haben (z. B. "Content-Type: image/png"). Ich vermute, du schickst die ** base64 ** mit MIME 'Content-Type: text/plain' – grochmal
wie kann ich das machen? – nicks
Sie erwähnten 'gmail', es kann Ihnen die rohe E-Mail zeigen. In der oberen rechten Ecke der Nachricht (neben der Antwort-Schaltfläche) befinden sich die Nachrichtenoptionen, eine davon ist "Original anzeigen". – grochmal