我遇到一个问题,其中只有正文中的文本才出现,图像破损了,有人看到我可能出问题了吗?
<?php
require("php/PHPMailer.php");
require("php/SMTP.php");
if (isset($_GET['email'])) {
$emailID = $_GET['email'];
if($emailID = 1){
$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = "";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "";
$mail->Password = "";
$mail->SetFrom("");
$mail->Subject = "Test";
$mail->Body = '<html><body><p>My Image</p><img src="images/EmailHeader.png" width="75%"></body></html>';
$mail->AddAddress("");
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
}
else {
echo "Message has been sent";
}
}
}
?>
答案 0 :(得分:0)
您使用的图片网址是相对的。您需要使用完整网址。
代替:
<img src="images/EmailHeader.png" width="75%">
它必须是公众可以看到的绝对URL,例如:
<img src="https://image-website.com/images/EmailHeader.png" width="75%">
答案 1 :(得分:0)
您无法在电子邮件中使用relative path
上传图片。您必须使用full path
,因为发送邮件时,它需要完整的路径来获取图像内容。,
替换此行,
$mail->Body = '<html><body><p>My Image</p><img src="images/EmailHeader.png" width="75%"></body></html>';
在这一行,
$mail->Body = '<html><body><p>My Image</p><img src="http://your-domainname.com/images/EmailHeader.png" width="75%"></body></html>';
另一个选择是您可以使用base64
张图片。但是在您的情况下,您必须给出完整的路径。