Я пытаюсь отправить изображение, которое у меня есть в строке base64 по электронной почте. Это код, который я использую. Сообщение отправлено успешно, однако я не могу открыть/просмотреть изображение, ни в браузере, ни при его загрузке. Когда я использую онлайн-предварительные изображения изображений, которые преобразуют base64 в изображения и передают им содержимое переменной $qr_base64
, они показывают картинку, в которой я нуждаюсь. В чем может быть проблема? Заранее спасибо.Почему невозможно привязать изображение вложений через google smtp?
$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();
}
Это было долгое время, так как я использовал 'PHPMailer', но не должны там быть' $ mail-> Body'? Во всяком случае, вы должны захватить электронную почту. Чтобы иметь возможность предварительного просмотра изображения, у почты должно быть «Content-Type: multipart/alternative», а часть, содержащая изображение, должна также иметь правильный MIME (например, «Content-Type: image/png»). Я подозреваю, что вы отправляете ** base64 ** с MIME 'Content-Type: text/plain' – grochmal
как я могу это сделать? – nicks
Вы упомянули 'gmail', он может показать вам сырое письмо. В правом верхнем углу сообщения (рядом с кнопкой ответа) указаны параметры сообщения, один из которых - «Показать оригинал». – grochmal